单击列表视图时在活动中显示不同的信息

Posted

技术标签:

【中文标题】单击列表视图时在活动中显示不同的信息【英文标题】:Display different information in activity when listview is clicked 【发布时间】:2015-04-08 15:03:02 【问题描述】:

我希望列表视图打开一个新活动并在单击列表视图的某些行时显示某些信息。 到目前为止,我只能在单击每一行时显示相同的信息。我不知道如何为特定行设置这些信息,例如,当我单击第 1 行时会显示此地址,当我单击第 2 行时会显示另一个地址,并且.....我的代码如下

第一个活动

 // storing string resources into Array
 String []Buildings_halls = getResources().getStringArray(R.array.halls);
    // Binding resources Array to ListAdapter
    this.setListAdapter(new ArrayAdapter<String>(this, R.layout.hallstudent, R.id.listhall, Buildings_halls));

 

 protected void onListItemClick(ListView lv, View v, int position, long id)
     super.onListItemClick(lv, v, position, id);     

Intent intent = new Intent(StudentHall.this, StudentHallSelect.class);
Bundle bundle = new Bundle();
bundle.putInt("position", position);
// Or / And
intent.putExtra("id", String.valueOf(id));
intent.putExtra("description",getResources().getStringArray(R.array.hallsdescription));
intent.putExtras(bundle);
startActivity(intent);

                       

@Override
protected void onPause() 
    // TODO Auto-generated method stub
    super.onPause();
    finish();


第二次活动

        Bundle intent = getIntent().getExtras();

                if (intent !=null)
        int position = intent.getInt("position", 0);     

        String[] halldetails = getResources().getStringArray(R.array.hallsdescription);

        txt = (TextView) findViewById (R.id.select_details);
        txt.setText(halldetails[1]);

        txt2=(TextView)findViewById(R.id.details_select);
        txt2.setText(halldetails[0]); 

        // Here we turn your string.xml in an array
        String[] myKeys = getResources().getStringArray(R.array.halls);

        TextView myTextView = (TextView) findViewById(R.id.selecthalllist);
        myTextView.setText(myKeys[position]);


    


@Override
public boolean onCreateOptionsMenu(Menu menu) 
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;



即我要显示的第 1 行的信息

<string-array name="descriptions">
           <item>Address:</item>
                <item>  Contact: </item>
                      <item>OpeningHours:</item>
               </string-array>

即我要显示的第 1 行的信息

  <string-array name="hallsdescription">
           <item >Address:, Telephone No:,Opening Times:</item>
           <item >Address:Catherine Street, Telephone No:657263912739,Opening Times:23:00</item>

谢谢

【问题讨论】:

检查这个答案是否有同样的问题***.com/questions/28393156/… 【参考方案1】:
protected void onListItemClick(ListView lv, View v, int position, long id)
 super.onListItemClick(lv, v, position, id);     

    Intent intent = new Intent(StudentHall.this, StudentHallSelect.class);
    switch(position)
    case 0:
        intent.putExtra("description",getResources().getStringArray(R.array.hallsdescription)[0]);
        break;
    case 1:
        intent.putExtra("description",getResources().getStringArray(R.array.hallsdescription)[1]);
        break;
    
    startActivity(intent);
    

在你的第二个活动中,

txt.setText(getIntent().getExtras().getString("description"));

【讨论】:

以上是关于单击列表视图时在活动中显示不同的信息的主要内容,如果未能解决你的问题,请参考以下文章

单击上一个活动的项目(列表视图)后如何突出显示下一个活动的项目(列表视图)?

单击一个列表视图传输两个列表视图数据

如何从列表视图中从 sqlite 检索数据单击并查看不同的活动 android studio

当我单击不同活动的文本视图时,我想显示该特定文本视图的内容。一世

Listview的项目位置0持有另一个列表视图,其中包含10个项目,每个项目打开单个活动但不同的文本数据

仅将一部分数据显示到列表视图中并获取新活动 android studio 中的所有值?