android设置列表id,学习Android绑定列表的时候提示:You must supply a resource ID for a TextView,有完整示例代码...
這個是代碼,我都是照著示例做的,但還是不行,查了一天了,到底是哪里出問題呢
萬分感謝
package?cn.com.ava.lesson4_fancy_view;
import?android.content.Context;
import?android.os.Bundle;
import?android.app.Activity;
import?android.util.Log;
import?android.view.LayoutInflater;
import?android.view.Menu;
import?android.view.View;
import?android.view.ViewGroup;
import?android.widget.ArrayAdapter;
import?android.widget.Button;
import?android.widget.EditText;
import?android.widget.ImageView;
import?android.widget.ListView;
import?android.widget.RadioButton;
import?android.widget.RadioGroup;
import?android.widget.TextView;
import?android.widget.Toast;
import?java.util.ArrayList;
import?java.util.List;
import?cn.com.ava.lesson4_fancy_view.Model.Address;
public?class?MainActivity?extends?Activity?{
private?EditText?et_name;
private?EditText?et_address;
private?Button?bt_save;
private?RadioGroup?rg_types;
private?RadioButton?rb_take_out;
private?RadioButton?rb_sit_down;
private?RadioButton?rb_delivery;
private?ListView?lv_address;
private?ArrayAdapter
?adapter;private?List
?listAddress?=?new?ArrayList();private?static?final?String?TAG?=?"MainActivity";
@Override
protected?void?onCreate(Bundle?savedInstanceState)?{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.bt_save?=?(Button)?this.findViewById(R.id.bt_save);
this.bt_save.setOnClickListener(new?View.OnClickListener()?{
@Override
public?void?onClick(View?view)?{
et_name?=?(EditText)?MainActivity.this.findViewById(R.id.et_name);
et_address?=?(EditText)?MainActivity.this.findViewById(R.id.et_address);
rg_types?=?(RadioGroup)?MainActivity.this.findViewById(R.id.rg_types);
rb_take_out?=?(RadioButton)?MainActivity.this.findViewById(R.id.rb_take_out);
rb_sit_down?=?(RadioButton)?MainActivity.this.findViewById(R.id.rb_sit_down);
rb_delivery?=?(RadioButton)?MainActivity.this.findViewById(R.id.rb_delivery);
Address?address?=?new?Address();
address.setName(et_name.getText().toString());
address.setAddress(et_address.getText().toString());
switch?(rg_types.getCheckedRadioButtonId())?{
case?R.id.rb_take_out:
address.setType(MainActivity.this.getString(R.string.take_out));
break;
case?R.id.rb_sit_down:
address.setType(MainActivity.this.getString(R.string.sit_down));
break;
case?R.id.rb_delivery:
address.setType(MainActivity.this.getString(R.string.delivery));
break;
}
Toast.makeText(MainActivity.this,?address.toString(),?Toast.LENGTH_SHORT)
.show();
adapter.add(address);
}
});
lv_address?=?(ListView)?findViewById(R.id.lv_address);
Log.d(TAG,?"設置?Fancy?List?Item");
this.adapter?=?new?ArrayAdapter
(MainActivity.this,?R.layout.fancy_list_item,?listAddress);lv_address.setAdapter(this.adapter);
}
class?AddressAdapter?extends?ArrayAdapter
?{public?AddressAdapter()?{
super(MainActivity.this,?R.layout.fancy_list_item,?listAddress);
Log.d(TAG,?"構造Fancy?List?Item");
}
@Override
public?int?getCount()?{
return?super.getCount();
}
@Override
public?long?getItemId(int?position)?{
return?super.getItemId(position);
}
@Override
public?View?getView(int?position,?View?convertView,?ViewGroup?parent)?{
//return?super.getView(position,?convertView,?parent);
View?rowView?=?convertView;
AddressHolder?holder?=?null;
if?(rowView?==?null)?{
Log.d(TAG,?"位置"?+?position?+?";開始加載View");
LayoutInflater?layoutInflater?=?getLayoutInflater();
rowView?=?layoutInflater.inflate(R.layout.fancy_list_item,?parent,?false);
Log.d(TAG,?"位置"?+?position?+?";開始加載完成");
holder?=?new?AddressHolder(rowView);
Log.d(TAG,?"位置"?+?position?+?";設置完成");
rowView.setTag(holder);
}?else?{
holder?=?(AddressHolder)?rowView.getTag();
}
holder.populateFrom(listAddress.get(position));
return?(rowView);
}
}
static?class?AddressHolder?{
private?TextView?name?=?null;
private?TextView?address?=?null;
private?ImageView?icon?=?null;
private?View?rowView?=?null;
AddressHolder(View?rowView)?{
this.rowView?=?rowView;
name?=?(TextView)?rowView.findViewById(R.id.et_name);
address?=?(TextView)?rowView.findViewById(R.id.et_address);
icon?=?(ImageView)?rowView.findViewById(R.id.iv_icon);
}
void?populateFrom(Address?r)?{
name.setText(r.getName());
address.setText(r.getAddress());
if?(r.getType().equals("sit_down"))?{
icon.setImageResource(R.drawable.ball_red);
}?else?if?(r.getType().equals("take_out"))?{
icon.setImageResource(R.drawable.ball_yellow);
}?else?{
icon.setImageResource(R.drawable.ball_green);
}
}
}
@Override
public?boolean?onCreateOptionsMenu(Menu?menu)?{
//?Inflate?the?menu;?this?adds?items?to?the?action?bar?if?it?is?present.
getMenuInflater().inflate(R.menu.main,?menu);
return?true;
}
}
這個是我的Item?XML
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
android:id="@+id/iv_icon"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginRight="4px"
>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
android:id="@+id/tv_name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_vertical"
android:textStyle="bold"
android:singleLine="true"
android:ellipsize="end"
>
android:id="@+id/tv_address"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:textStyle="bold"
android:singleLine="true"
android:ellipsize="end"
>
總結
以上是生活随笔為你收集整理的android设置列表id,学习Android绑定列表的时候提示:You must supply a resource ID for a TextView,有完整示例代码...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html dvi如何设置置顶不能空白位置
- 下一篇: mac安装软件管理Android手机,M