Android listview项目打开活动
我在“活动”中单击项目时出错,它们都显示了与他的名称相同的字符串:name\u 0 单击时打开的活动:Android listview项目打开活动,android,listview,onclick,Android,Listview,Onclick,我在“活动”中单击项目时出错,它们都显示了与他的名称相同的字符串:name\u 0 单击时打开的活动: public void handle() { TextView var3 = (TextView) this.findViewById(R.id.name); TextView var2 = (TextView) this.findViewById(R.id.meaning); TextView var5 = (TextView) this.findViewById(R
public void handle() {
TextView var3 = (TextView) this.findViewById(R.id.name);
TextView var2 = (TextView) this.findViewById(R.id.meaning);
TextView var5 = (TextView) this.findViewById(R.id.proof);
Intent var4 = this.getIntent();
int var1 = var4.getIntExtra("name", 0);
switch (var1) {
case 0:
var3.setText(R.string.name_0);
var2.setText(R.string.meaning_0);
var5.setText(R.string.proof_0);
break;
case 1:
var3.setText(R.string.name_1);
var2.setText(R.string.meaning_1);
var5.setText(R.string.proof_1);
break;
case 2:
var3.setText(R.string.name_2);
var2.setText(R.string.meaning_2);
var5.setText(R.string.proof_2);
break;
}
}
以及单击打开项目的活动:
String[] values = { "test", "list", "ok", "bon" };
protected void onCreate(Bundle var1) {
super.onCreate(var1);
this.setContentView(R.layout.activity_main);
this.listView = (ListView) this.findViewById(R.id.list);
listView.setAdapter(new ArrayAdapter<String>(this, R.layout.listview_item,
R.id.textView_list, values));
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapter, View view, int position, long arg) {
Intent Start = new Intent(MainActivity.this, Asma2Ma3anihaActivity.class);
startActivity(Start);
}
});
问题是您没有发送已单击项目的位置
Intent start = new Intent(MainActivity.this, Asma2Ma3anihaActivity.class);
start.putExtra("name", position);
startActivity(start);
这应该行得通
您总是得到0,因为您在这里设置了0 var4.getIntExtraname,0;当名称键丢失时作为默认值。在setOnItemClickListener中创建时,您从未在意图上额外设置“name”,因此当您尝试在“handle”方法中检索int时,您将始终得到0 在进行“startActivity”之前,您必须设置额外的意图
Intent startIntent = new Intent(MainActivity.this, Asma2Ma3anihaActivity.class);
startIntent.putExtra("name", position);
startActivity(startIntent);
为了从项目中获取文本,需要从项目ClickListener中获取的视图中获取值 i、 e
也谢谢你:D
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapter, View view, int position, long arg) {
String text = ((TextView)view.findViewById(R.id.name)).getText();
Intent Start = new Intent(MainActivity.this, Asma2Ma3anihaActivity.class).putExtra("name",text);
startActivity(Start);
}
});