2014-10-19 3 views
0
내가 시도했지만를 가져올 수 없습니다

... 나는이ID를 얻는 방법 ... SQLite SimplecursorAdapter?

new String[] {"name", "_id"}, // I want the value of _id 
new int[] {R.id.textView1, id}); 

하지만 여전히 힘 작업 나는 새로운 활동이 ID를 전달해야

public class Veg extends SherlockActivity implements OnItemClickListener { 

private Cursor data; 
private DBManager db; 
ListView lv; 
int id; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.nonveg); 
    lv = (ListView) findViewById(R.id.list1); 
    db = new DBManager(this, null, null, 0); 
    data = db.getVeg(); // you would not typically call this on the main thread 
    @SuppressWarnings("deprecation") 
    ListAdapter adapter = new SimpleCursorAdapter(this, 
      R.layout.veg_item, 
      data, 
      new String[] {"name", "_id"}, 
      new int[] {R.id.textView1}); 
    lv.setAdapter(adapter); 
    lv.setOnItemClickListener(this); 
} 
@Override 
protected void onDestroy() { 
    super.onDestroy(); 
    data.close(); 
    db.close(); 
} 
@Override 
public void onItemClick(AdapterView<?> arg0, View view, int i, long l) { 
    // TODO Auto-generated method stub 
    //Toast.makeText(this, id, Toast.LENGTH_LONG).show(); 
    //Intent in = new Intent(Veg.this, Veg_View.class); 
    //in.putExtra("id", String.valueOf(i)); /// ID need to passed here 
    //startActivity(in); 
} 

처럼 추가했습니다. 는 그리고 새로운 활동에 내가 해당 데이터

답변

0

이 그냥이

Intent in = getIntent(); 
Bundle bu = in.getExtras(); 
int id = in.getInt("id"); 
+0

작동하지만 _id 값을 얻을 수 없다. m db –

+0

OnItemClick에서 가져온 값은 어댑터에서의 위치를 ​​나타내지 만 데이터베이스에서 가져온 값이 아니라 다른 활동에서 올바른 값을 얻지 못하는 경우, 올바른 항목을 가져와야합니다. 그 위치 (i)에서 어댑터를 누른 다음 어댑터의 해당 객체에서 _id를 얻으십시오. – nunoh123

+0

어떻게 그렇게합니까 ??? –

0
public void onItemClick(AdapterView<?> arg0, View view, int i, long l) 

을 사용하여 새 활동에서 다른 활동

Intent in = new Intent(Veg.this, Veg_View.class); 
in.putExtra("id", String.valueOf(i)); /// ID need to passed here 
startActivity(in); 

를 통해 데이터를 전송하기위한 올바른을 retreive 필요 마지막 인수는 원하는 _id입니다 OnItemClick 메서드 서명은 입니다. public void onItemClick (AdapterView par 천만에,보기보기, INT 위치, 긴 ID)

parentAdapter

id 아이디에 위치

view이 항목의 루트 뷰가

position을 클릭되는 어댑터입니다 커서 어댑터에서 일치하는 항목의 어댑터 번호 _id