2014-09-21 2 views
0

간단한 목록보기를 만들었습니다. 사용자가 목록보기를 클릭하면 선택한 코드가 텍스트보기에 올바르게 표시되지만 문제가 발생합니다. 사용자가 다시 내가 두 번째 텍스트보기에 그 기록을 보여주고 싶은 클릭하면, 어떻게 this..please 저를 도와주세요 수행하는 나에게 아이디어/코드를 제공하시기 바랍니다 ... 내가 안드로이드에 새로운 오전입니다 ..setOnItemClickListener에서 textview에 목록보기 레코드를 표시하는 방법

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

몇 개의 TextView가 있습니까? –

+0

사용자가 첫 번째 텍스트보기에 표시 할 레코드 하나를 선택하면 두 번째 목록보기 레코드를 선택하면 두 번째 텍스트보기로 표시됩니다. – Ravi

+0

코드에서 TextView –

답변

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")' 
     } 
} 

편집 : TextViews를 올바른 순서로 유지하는 ArrayList를 만듭니다. OnItemClick에 주어진 위치 int를 사용하면 올바른 TextView를 꺼내서 .setText를 사용할 수 있습니다!

+0

으로 확인하십시오. 내 코드를 업데이트했는지 확인하십시오. 5 개의 텍스트보기를 만들었습니다. 사용자가 목록보기를 클릭하면 첫 번째 행이 첫 번째 텍스트보기에 표시되어야합니다. 사용자가 목록보기를 두 번째 줄로 클릭하면 표시됩니다. 두 번째 텍스트보기에 표시해야합니다 .. – Ravi

+0

제 편집을 확인하고 필요한 항목인지 확인하십시오. – daidaidai

+0

두 번째 목록보기의 목록보기 레코드를 표시하려면 다음 방법을 사용하십시오. – Ravi

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 
     } 
} 
}); 
관련 문제