Java 包含每个项目的多个文本视图的列表

Java 包含每个项目的多个文本视图的列表,java,android,list,Java,Android,List,对于android应用程序,我需要创建一个列表,允许我在同一个“项目”中输入不同的内容。例如,列表中的每个对象都需要不同的信息(每个对象都有一个单独的行)。具体地说,我的应用程序需要为每个列表项提供以下内容:疼痛位置、治疗、疼痛类型以及每个实例的一些其他类别 这是我到目前为止收集的信息,但它仅显示列表中每个项目的一个文本视图: PACKAGE, Imports, etc. public class PainLoggerActivity extends Activity implements

对于android应用程序,我需要创建一个列表,允许我在同一个“项目”中输入不同的内容。例如,列表中的每个对象都需要不同的信息(每个对象都有一个单独的行)。具体地说,我的应用程序需要为每个列表项提供以下内容:疼痛位置、治疗、疼痛类型以及每个实例的一些其他类别

这是我到目前为止收集的信息,但它仅显示列表中每个项目的一个文本视图:

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;

}
包装、导入等。
公共类PainLoggerActivity扩展活动实现OnClickListener,
OnKeyListener{
/**在首次创建活动时调用*/
编辑文本项;
按钮btnAdd;
列表视图列表项;
ArrayList项目;
ArrayAdapter aa;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
txtItem=(EditText)findViewById(R.id.txtItem);
btnAdd=(按钮)findviewbyd(R.id.btnAdd);
listItems=(ListView)findViewById(R.id.listItems);
btnAdd.setOnClickListener(此);
setOnKeyListener(这个);
painItems=新的ArrayList();
aa=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,
疼痛项目);
setAdapter(aa);
}
专用void附加项(字符串项){
如果(item.length()>0){
此.painItems.add(项);
this.aa.notifyDataSetChanged();
此.txtItem.setText(“”);
}
}
@凌驾
公共void onClick(视图v){
如果(v==this.btnAdd)
this.addItem(this.txtItem.getText().toString());
}
@凌驾
公共布尔onKey(视图v、int keyCode、KeyEvent事件){
如果(event.getAction()==KeyEvent.ACTION_向下&&keyCode==
KeyEvent.KEYCODE\u DPAD\u中心){
this.addItem(this.txtItem.getText().toString());
}
返回false;
}
}


*一些示例代码将不胜感激,因此我知道如何实现建议-毫无疑问,我还是一个初学者*

在适配器布局中使用布局“simple\u list\u item\u 1”时,不可能有多个TextView项。。。这就是为什么他们称之为“简单项目1”

如果您希望每行总共有2个文本视图,您可以使用“simple\u list\u item\u 2”,但我实际上建议您使用SimpleAdapter并创建自己的行条目布局文件。它更加灵活,您可以包含任意多的文本项、图像、复选框或任何您可以想到的内容,而不是一行中的几个文本项

值得深思的是


搜索SimpleAdapter示例以了解如何实现这一点。没什么大不了的,你会发现这是一个“不断赠送的礼物”。

在适配器布局中使用布局“简单列表项目1”时,不可能有多个文本视图项目。。。这就是为什么他们称之为“简单项目1”

如果您希望每行总共有2个文本视图,您可以使用“simple\u list\u item\u 2”,但我实际上建议您使用SimpleAdapter并创建自己的行条目布局文件。它更加灵活,您可以包含任意多的文本项、图像、复选框或任何您可以想到的内容,而不是一行中的几个文本项

值得深思的是


搜索SimpleAdapter示例以了解如何实现这一点。没什么大不了的,你会发现这是一个“不断给予的礼物”。

+1学习创建自己的列表项并不困难,它会给你无限的灵活性,让你真正给你的应用程序一种定制的感觉。我已经尝试过了,但似乎不起作用。如果您能为我指出正确的方向,我将不胜感激,因为这些教程并没有真正起到帮助作用
notes=newsimpledapter(this,painItems,R.layout.main,新字符串[]{“line1”,“line2”},新int[]{R.id.txtItem,R.id.editText1});setListAdapter(注释)
@Glendon,你能给我简单介绍一下如何创建一个简单的适配器并使用它吗?此外,上面的代码使用editText1作为另一个文本字段,我将列表(painItems)更改为:
ArrayList painItems=new ArrayList()+1学习创建自己的列表项并不困难,它会给你无限的灵活性,让你真正给你的应用一种定制的感觉。我已经尝试过了,但它似乎不起作用。如果您能为我指出正确的方向,我将不胜感激,因为这些教程并没有真正起到帮助作用
notes=newsimpledapter(this,painItems,R.layout.main,新字符串[]{“line1”,“line2”},新int[]{R.id.txtItem,R.id.editText1});setListAdapter(注释)
@Glendon,你能给我简单介绍一下如何创建一个简单的适配器并使用它吗?此外,上面的代码使用editText1作为另一个文本字段,我将列表(painItems)更改为:
ArrayList painItems=new ArrayList()