对于Android应用程序,我需要创建一个列表,允许我在同一个“项目”中输入不同的内容。例如,列表中的每个对象都需要不同的信息(每个信息都有一个单独的行)。具体来说,我的应用程序希望每个列表项具有以下内容:疼痛位置,治疗,疼痛类型以及每个实例的一些其他类别。
这是我到目前为止收集的内容,但它只在列表中显示每个项目一个TextView:
PACKAGE, Imports, etc.
public class PainLoggerActivity extends Activity implements OnClickListener,
OnKeyListener {
/** Called when the activity is first created. */
EditText txtItem;
Button btnAdd;
ListView listItems;
ArrayList <String> painItems;
ArrayAdapter<String> aa;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
txtItem = (EditText)findViewById(R.id.txtItem);
btnAdd = (Button)findViewById(R.id.btnAdd);
listItems = (ListView)findViewById(R.id.listItems);
btnAdd.setOnClickListener(this);
txtItem.setOnKeyListener(this);
painItems = new ArrayList<String>();
aa = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,
painItems);
listItems.setAdapter(aa);
}
private void addItem(String item){
if(item.length() > 0){
this.painItems.add(item);
this.aa.notifyDataSetChanged();
this.txtItem.setText("");
}
}
@Override
public void onClick(View v) {
if(v == this.btnAdd)
this.addItem(this.txtItem.getText().toString());
}
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if(event.getAction() == KeyEvent.ACTION_DOWN && keyCode ==
KeyEvent.KEYCODE_DPAD_CENTER){
this.addItem(this.txtItem.getText().toString());
}
return false;
}
}
* 一些示例代码将不胜感激,所以我知道如何实施建议 - 毫无疑问,我仍然是初学者*
答案 0 :(得分:1)
在为适配器的布局使用布局“simple_list_item_1”时,不可能有多个TextView项目......这就是为什么他们称之为“简单 - 项目-1”。
如果每行总共需要2个TextView,可以使用“simple_list_item_2”,但实际上我建议您使用SimpleAdapter并创建自己的行条目布局文件。它更加灵活,您可以包含尽可能多的文本项,图像,复选框或其他任何您能想到的内容,而不是单行上的几个文本项。
思考的食物......
搜索SimpleAdapter示例以了解如何实现此功能。没什么大不了的,你会发现它是一种“继续奉献的礼物。”