2013-05-18 189 views
0

大家好:我希望有人可以幫助我,查詢生成的光標使用由simple_list_item_2定義的佈局填充ListView。 要創建的意圖,我需要的點擊查看的第一個字符串,但在字符串去,我有一些像如何從列表視圖中獲取數據和視圖

[email protected]

現在的代碼。 我不明白錯誤在哪裏。

SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_2, cursor, columns, ids, CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER); 

    final ListView myList=(ListView)findViewById(R.id.listView1); 
    myList.setAdapter(adapter); 
    myList.setClickable(true); 

    /* 
    * Click Listener 
    */ 
    myList.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> l, View v, int position, long id) 
     { 
      Log.v("io", "start"); 
      Intent intent = new Intent(MainActivity.this, WorkActivity.class); 

      View buff = myList.getChildAt(position); 
      String toGo = buff.findViewById(android.R.id.text1).toString(); 

      Log.v("io",toGo); 
      intent.putExtra("dname", toGo); 
      startActivity(intent); 
     } 
    }); 

回答

0

嘗試:

String toGo = ((TextView)buff.findViewById(android.R.id.text1)).getText().toString() 
+0

作品perfect.Thanks我完全忘了在TextView中投。 onItemClick監聽器中的 – LuigiDB

0

裏面你onItemClick可以檢索通過AdapterView參數鏈接到您的adapter數據。調用getItemAtPosition(int)您可以訪問與所選項目

myList.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> l, View v, int position, long id) 
     { 
      Log.v("io", "start"); 
      Intent intent = new Intent(MainActivity.this, WorkActivity.class); 

      View buff = myList.getChildAt(position); 
      String toGo = l.getItemAtPosition(position); 

      Log.v("io",toGo); 
      intent.putExtra("dname", toGo); 
      startActivity(intent); 
     } 
    }); 
0

//

myList.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> l, View v, int position, long id) 
    { 
     Log.v("io", "start"); 
     Intent intent = new Intent(MainActivity.this, WorkActivity.class); 

     //View buff = myList.getChildAt(position); 
     // String toGo = buff.findViewById(android.R.id.text1).toString(); 
    String toGo = (TextView)v.getText(); 

     Log.v("io",toGo); 
     intent.putExtra("dname", toGo); 
     startActivity(intent); 
    } 
}); 
+0

視圖v是行。你的情況是textview。 –

+0

非常簡單的實現。謝謝 – LuigiDB

0

爲了獲取視圖相關的數據做如下:

LinearLayout row = (LinearLayout) ((LinearLayout)v); 

或者RelativeLayout,而不是LinearLayout如果您case

然後將以下代碼應用於ge牛逼的TextView基於其訂單上的文字:

TextView column = (TextView)row.getChildAt(0); 
String text = column.getText().toString(); 

希望這有助於

相關問題