如何在setOnItemClickListener上的textview中显示列表视图记录

时间:2014-09-21 10:54:04

标签: android listview

我创建了简单的列表视图,我想要做的是当用户点击列表视图时,所选记录应该在我的代码中的文本视图中显示它是否正常工作,但问题是当用户再次点击我要显示时那个记录在第二个文本视图中,请给我一些想法/代码如何做到这一点..请帮助我...我是android的新手..

public class MainActivity extends Activity {
String item[]=new String[]{"rk","kk","kk","ll","mm","uu"};
TextView tv,tv1,tv2,tv3,tv4;    
ListView li;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    li=(ListView)findViewById(R.id.listView1);
    tv=(TextView)findViewById(R.id.setText);\
    tv1=(TextView)findViewById(R.id.setText1);
    tv2=(TextView)findViewById(R.id.setText2);
    tv3=(TextView)findViewById(R.id.setText3);      
    tv4=(TextView)findViewById(R.id.setText4);      

     ArrayAdapter<String> adapter=new ArrayAdapter<String> (this,android.R.layout.simple_list_item_1,android.R.id.text1, item); 
    li.setAdapter(adapter); 
    li.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int position,long arg3) {
        // TODO Auto-generated method stub

        int itm=position;       
        Toast.makeText(getApplicationContext(),""+itm+""+li.getItemAtPosition(position),40).show();
        tv.setText(""+li.getItemAtPosition(position));
    }
});

2 个答案:

答案 0 :(得分:0)

我希望我能理解你。您希望不同的文本视图具有文本,具体取决于它所点击的组合数。如果是这样,请设置一个静态计数器来计算它被点击的次数。在 OnItemClick 中递增此计数器并检查其值,然后根据文本值设置TextViews的文本。

@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position,long arg3) {
    // TODO Auto-generated method stub

    int itm=position;       
    Toast.makeText(getApplicationContext(),""+itm+""+li.getItemAtPosition(position),40).show();
    if (myCounter >=2){
        someTextView.setText(""+li.getItemAtPosition(position));
    }else{
        anotherTextView.setText("blabla")'
        }
}

编辑:创建一个ArrayList,按正确顺序保存TextView。使用OnItemClick中给出的position int,您可以取出正确的TextView并在它们上使用.setText!

答案 1 :(得分:0)

有很多方法可以解决这个问题。

 ArrayList<Boolean> firstTimers = new ArrayList<Boolean>();

 for (Int I =0; I< item.length(); I++){
   firstTimers.add(false);
  }

 li.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position,long arg3) {
    // TODO Auto-generated method stub

    if( !firstTimers.get(position ){
         int itm=position;       
         Toast.makeText(getApplicationContext(),""+itm+""+li.getItemAtPosition(position),40).show();
          tv.setText(""+li.getItemAtPosition(position));
          firstTimers.set(position,true);
       }else{ // show in other textview
         }
}
});