如何在同一个listitem中同时显示字符串和edittext字段?
问题描述:
在我的程序中,我使用json从远程SQL数据库中获取了一些字符串。这些项目(字符串)目前填充我的列表视图。如果一个项目同时包含一个字符串和一个edittextfield,我想在listview中放置一个edittext字段。稍后我还想保存在edittext字段中输入的文本,所以我需要能够引用它。谁能帮我吗?如何在同一个listitem中同时显示字符串和edittext字段?
答
你应该为列表创建一个视图,只要你喜欢它,这里是例子。
home.xml
<ListView
android:id="@+id/listView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@android:drawable/alert_dark_frame" >
</ListView>
</LinearLayout>
和一个更多的XML,你要充气, list.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/textView2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="TextView" />
</LinearLayout>
在活动中使用这种方法,
LayoutInflater mlayoutinflator;
public void getlist(final ArrayList<contact> list){
// Get the list view
ListView listView = (ListView) findViewById(R.id.listView);
mlayoutinflator =(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
ArrayAdapter<contact> aa = new ArrayAdapter<contact>(this, R.layout.listitem,list){
@Override
public View getView(final int position, View convertView,ViewGroup parent)
{
if (null == convertView)
{
convertView = mlayoutinflator.inflate(R.layout.listitem, parent, false);
holder = new ViewHolder();
holder.value1 = (TextView)convertView.findViewById(R.id.textView1);
holder.value2 = (TextView)convertView.findViewById(R.id.textView2);
convertView.setTag(holder);
}
else
{
holder = (ViewHolder) convertView.getTag();
}
holder.value1.setText(""+list.get(position).getName().trim());
holder.value2.setText(""+list.get(position).getNumber().trim());
convertView.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("sms:"));
intent.putExtra("sms_body", list.get(position).getName()+"-"+list.get(position).getNumber());
startActivity(intent);
}
});
return convertView;
}
};
listView.setAdapter(aa);
}
static class ViewHolder
{
private TextView value1;
private TextView value2;
}
非常有帮助,我得到了大部分工作了。我仍然不知道如何做的唯一的事情就是引用我的文本框,这样我就可以保存它们。 – HansStam 2012-03-05 05:09:48
你会有一个要添加到列表中的字符串列表。在上面的获取列表方法中传递该列表,现在创建一个持有者类来保存所有视图,如示例中所示,并且如果您遇到问题,请调用视图项目,如holder.value1.setText(yourlist.getposition.getitem) – Rakshi 2012-03-05 05:24:46
你的班级的邮件我会修好,[email protected] – Rakshi 2012-03-05 05:26:08