Android 如何从列表中的选定项获取文本并在文本视图中设置该文本?
我已经创建了一个列表。我需要在单击列表项时获取列表项上的文本。然后需要在TextView中设置该文本。下面是我的代码,当我运行它时,我得到一个强制停止。请给出一些想法Android 如何从列表中的选定项获取文本并在文本视图中设置该文本?,android,listview,textview,Android,Listview,Textview,我已经创建了一个列表。我需要在单击列表项时获取列表项上的文本。然后需要在TextView中设置该文本。下面是我的代码,当我运行它时,我得到一个强制停止。请给出一些想法 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); txtTask = (EditText)findViewById(R.i
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
txtTask = (EditText)findViewById(R.id.txtTask);
btnAdd = (Button)findViewById(R.id.btnAddTask);
selectedTask = (TextView)findViewById(R.id.textViewTask);
list = getListView();
list.setTextFilterEnabled(true);
btnAdd.setOnClickListener(this);
list.setOnKeyListener(this);
toDoItems = new ArrayList<String>();
oo = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, toDoItems);
list.setAdapter(oo);
list.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id3) {
int tmp = list.getSelectedItemPosition();
String v= toDoItems.get(tmp).toString();
selectedTask.setTag(v);
flippy.showNext();
}
});
}
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
txtTask=(EditText)findViewById(R.id.txtTask);
btnAdd=(按钮)findviewbyd(R.id.btnAddTask);
选择任务=(TextView)findViewById(R.id.textViewTask);
list=getListView();
list.setTextFilterEnabled(true);
btnAdd.setOnClickListener(此);
list.setOnKeyListener(此);
toDoItems=新的ArrayList();
oo=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,toDoItems);
setAdapter(oo);
list.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父视图、视图、整型位置、,
长id3{
int tmp=list.getSelectedItemPosition();
字符串v=toDoItems.get(tmp.toString();
选择任务。设置标签(v);
flipy.showNext();
}
});
}
在获得字符串v后,您需要输入以下行:
selectedTask.setText(v);
也不需要放置
list.setOnKeyListener(这个)
因为您需要侦听正在单击的项目。用我建议的代码替换onimclick方法中下面3行代码
int tmp = list.getSelectedItemPosition();
String v= toDoItems.get(tmp).toString();
selectedTask.setTag(v);
建议代码
String v= toDoItems[position]; // or
String v = list.getItemAtPosition(position).toString();
selectedTask.setText(v);
如果您从Logcat粘贴了异常,这会有所帮助。仅需确认,您确实实现了调用
setTag()
而不是setText()
对吗?使用字符串v=list.getItemAtPosition(position).toString();我也尝试过使用setText()。同样的情况也会发生。“使用字符串v=list.getItemAtPosition(position.toString();–lim_939”这对我很有效,非常感谢!!:)它起作用了,但我也不得不改变上面的界线。谢谢