Android listview项目打开活动

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

我在“活动”中单击项目时出错,它们都显示了与他的名称相同的字符串: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.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);
       } 
    });