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