2012-03-29 5 views
0

나는 2 번의 활동이 있습니다.캔트리스트 뷰에서 무작위로 데이터를 선택

첫 번째 활동은 서버의 JSON 데이터를 ListView으로 구문 분석하는 활동이고 두 번째 활동은 ListView에 선택된 값의 데이터를 표시하는 활동입니다.

은 여기 내 첫번째 활동의 onClick 방법입니다 :

/** 
    * Updating parsed JSON data into ListView 
    * */ 
    ListAdapter adapter = new SimpleAdapter(this, userList, 
      R.layout.listitemviewall, 
      new String[] { "namaresto", "alamatresto"}, 
      new int[] {R.id.name, R.id.address}); 

    setListAdapter(adapter); 

    /** 
    * select resto 
    */ 

final ListView lv = getListView(); 
    lv.setTextFilterEnabled(true); 
    lv.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) {    

      /** 
      * move to the next activity 
      * */ 

      String namanya = ((TextView) findViewById(R.id.name)).getText().toString(); 
      String alamatnya = ((TextView) findViewById(R.id.address)).getText().toString(); 

      //Starting a new Intent 
      Intent nextScreen = new Intent(getApplicationContext(), InfoTab.class); 

      //Sending data to another Activity 
      nextScreen.putExtra("name", namanya); 
      nextScreen.putExtra("address", alamatnya); 

      // starting new activity 
      startActivity(nextScreen); 


     } 
    }); 

그리고 여기에 두 번째 활동 :

TextView txtname = (TextView) findViewById(R.id.textTEST1); 
TextView txtaddress = (TextView) findViewById(R.id.TextTEST2); 



    //displaying data from previous activity 
    Intent i = getIntent(); 
    // Receiving the Data 
    String name = i.getStringExtra("name"); 
    String address = i.getStringExtra("address"); 

    // Displaying Received data 
    txtname.setText(name); 
    txtaddress.setText(address); 

결과가 두 번째 활동은 항상 첫 번째 레코드를 표시합니다! 두 번째 또는 다른 레코드를 클릭 한 경우에도 ListView.

ListView에서 선택된 올바른 레코드를 표시하려면 어떻게해야합니까?

답변

0

시도 변경이 라인 :

String namanya = ((TextView) findViewById(R.id.name)).getText().toString(); 
     String alamatnya = ((TextView) findViewById(R.id.address)).getText().toString(); 

에 : 그것은 당신을 위해 작동하는 경우

String namanya = ((TextView) view.findViewById(R.id.name)).getText().toString(); 
     String alamatnya = ((TextView) view.findViewById(R.id.address)).getText().toString(); 

말해 ...

+0

고맙습니다. 저에게 맞는 작품입니다! –

+0

행복 했어요 :) – Th0rndike

0

당신은 onItemClick에 올바른 데이터를 따기되지 않습니다 . parent.getItemAtPosition (position)을 수행하여 해당 행을 나타내는 목록에서 객체를 검색 할 수 있습니다. onItemClick 내부. 그러면 해당 행에 해당하는 어댑터에 제공 한 목록의 오브젝트가 제공됩니다.

관련 문제