0

서버에서 값을 가져 오는 중 서버에서 응답을 검색하는 중 서버에서 응답 한 세부 정보가 listview에 표시되어야합니다. 또한이를 달성했지만 onitemclick 프로세스가 목록보기의 첫 번째 행만 클릭 동작을 수행하지만 그것은 나머지 행에 대해 수행하지 않습니다, 어떻게 그것을 달성 할 수 있습니다, dat은 행과 항목을 내가 그것을 선택하고 있어요, 내 코드에 의해 처리되어야합니다, 여기 참조, 내 코드입니다 ....... ..android에서 여러 행이있는 listview에 대해 itemclick 이벤트를 선택하는 방법은 무엇입니까?

public void userInterface() throws JSONException 
    { 
     if(json_user.get(0) != null) 
     { 
      downloadList1 = (ListView)findViewById(R.id.lvinbox); 
      populateData(); 
      downloadList1.setOnItemClickListener(new OnItemClickListener() 
      { 
       public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) 
       { 
        // TODO Auto-generated method stub 
        fma=(TextView)findViewById(R.id.src); 
        st=(TextView)findViewById(R.id.sub); 
        fma.setOnClickListener(new OnClickListener() 
        { 
         public void onClick(View v) 
         { 
          // TODO Auto-generated method stub 
                  String fm=fma.getText().toString(); 
          String s=st.getText().toString(); 
          Intent m = new Intent(getApplicationContext(), InActivity.class); 
          m.putExtra("f", fm); 
          m.putExtra("s", s); 
          startActivity(m); 
         } 
        }); 
       st.setOnClickListener(new OnClickListener() 
        { 
         public void onClick(View v) 
         { 
          // TODO Auto-generated method stub 
          String fm=fma.getText().toString(); 
          String s=st.getText().toString(); 
          Intent m = new Intent(getApplicationContext(), InActivity.class); 
          m.putExtra("f", fm); 
          m.putExtra("s", s); 
          startActivity(m); 
         } 
        }); 
       } 
      }); 
     } 
     else 
     { 
      Toast.makeText(getApplicationContext(),"Empty", Toast.LENGTH_LONG).show(); 
      finish(); 
      Intent menu = new Intent(getApplicationContext(), MenActivity.class); 
      menu.putExtra("username", dest); 
      startActivity(menu); 
     } 
    } 
    public void populateData() throws JSONException 
    { 
     resultVector = new Vector<ListDataItemInbox>(); 


     int len = json_user.length(); 
     System.out.println("length--------------------->"+len); 
     for(int i=0;i<len;i++) 
     { 
      JSONObject obj=json_user.getJSONObject(i); 

      listData = new ListDataItemInbox(); 
      listData.sets(obj.getString(KEY_S)); 
      listData.setd(obj.getString(KEY_D)); 
      resultVector.add(listData); 

      myHandler.post(myRunnable); 

     } 
    } 
    private Handler myHandler = new Handler(); 
    private Runnable myRunnable = new Runnable() 
    { 
     public void run() 
     { 
      customListAdapter = new ListViewAdapterInbox(InActivity.this); 
      customListAdapter.setResultsData(resultVector); 
      downloadList1.setAdapter(customListAdapter); 
     } 
    }; 
+0

getView에있는 ClickListener보기 ListViewAdapterInbox의 메서드 –

+0

OnItemClickListner에서 onclick 할 필요가 없습니다. –

+0

Hello Deepaner! 내가 말했듯이, 그것은 작동하지만 심지어 내가 첫 번째 행을 다시 표시하는 두 번째 행을 선택 .. 어떻게 그 특정 행을 얻을 수 있습니다 .... 날 PLZ .... 도와주세요 – Azhar

답변

0

이렇게 할 수 있습니다. 목록 어댑터 클래스

ArrayList<Integer> selectedIds = new ArrayList<Integer>(); 

에서의 ArrayList를하고 같은 클래스에서이 메소드를 생성 .

public void toggleSelected(Integer position){ 
      selectedIds.clear(); 
      selectedIds.add(position); 
     } 

이제 listview의 항목을 클릭 할 때마다 해당 항목 위치가이 메소드에 전달됩니다. 그리고 getView 메소드 내에서 텍스트를 설정하기 전에 검사를 설정하십시오. 단지 선택된 위치에서 동작을 수행

if (selectedIds.contains(position)){ 
        ----- your code ---- 
       }else{ 
       ----- your code ---- 
       } 

같은 것을 ... 시도 해봐.!

+0

첫 번째 행만 선택되고 나머지 행은 모두 선택되지 않습니다. 다른 행을 선택하려고하면 어떤 동작을하지 않습니까? 아무도 도와 줄 수 있니? – Azhar

+0

아무도 내 질문에 대한 제안을 했습니까? – Azhar

관련 문제