2014-09-17 2 views
0

데이터베이스의 정보를 표시하는 목록보기가 있습니다. 사용자가 행 항목을 길게 클릭 할 수있게하려고합니다.ListView OnItemLongClicklistner - 정보 검색

지금까지 행 항목을 길게 클릭하고 행 ID를 검색 할 수 있지만이 결과는 내가 원하는 최종 결과가 아닐 수 있습니다. 행 항목과 연결된 데이터베이스에서 기본 키를 검색 할 수 있어야합니다. 이 정보는 행 항목에 표시됩니다. 나는 그걸 멀리 할 수 ​​없다. 목록보기에서 행 ID를 행의 정보 (예 : 기본 키 및 기타 텍스트)에 다시 '연결'하는 방법을 알 수 없습니다. 아래는 제가 지금까지 가지고있는 코드입니다.

DatabaseHandler db = new DatabaseHandler(this); 
    SimpleCursorAdapter dataAdapter; 

    @Override 
    protected void onCreate (Bundle savedInstanceState){ 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.list_main); 




     Cursor cursor=db.getAllLocationsCursor(); 

     String from [] = new String[] {db.COLUMN_DESCRIPTION, db.COLUMN_LOCATION, db.KEY_ID}; 
     final int to [] = new int[]{R.id.descriptionList, R.id.locationList, R.id.idList}; 

     dataAdapter = new SimpleCursorAdapter(this, R.layout.row_item, cursor, from, to, 0); 


     ListView lv = getListView(); 
     lv.setAdapter(dataAdapter); 


     OnItemLongClickListener listener = new OnItemLongClickListener(){ 
      @Override 
      public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int position, long id){ 

       Toast.makeText(getApplicationContext(), "Long Clicked " + id, Toast.LENGTH_SHORT).show(); 
       return false; 
      } 
     }; 
     lv.setOnItemLongClickListener(listener); 
    } 

이 내가이 검색 한 나의 행 항목 XML

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@color/background" 
    android:clickable="true" 
    android:focusable="true" 
    android:longClickable="true" 
    android:onClick="itemClick" > 

    <TextView 
     android:id="@+id/descriptionList" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true" 
     android:text="Large Text" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:textColor="@color/mainText" /> 

    <TextView 
     android:id="@+id/locationList" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentRight="true" 
     android:layout_below="@+id/descriptionList" 
     android:lines="2" 
     android:text="TextView" 
     android:textColor="@color/locationWordsText" /> 

    <TextView 
     android:id="@+id/idList" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true" 
     android:alpha="0" 
     android:text="TextView" /> 

</RelativeLayout> 

이지만, 내가 특별히이

이 대답 할 수 있었다 해결하는 답을 찾을 수 없습니다 길게 누르는 길까지 올바른 길로 나를 데려가십시오. can't getting data from cursor adapter

답변

0

잘 작동합니다.

OnItemLongClickListener listener = new OnItemLongClickListener(){ 
      @Override 
      public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int position, long id){ 

       Toast.makeText(getApplicationContext(), "Long Clicked " + id, Toast.LENGTH_SHORT).show(); 
       return false; 
      } 
     }; 
     lv.setOnItemLongClickListener(listener); 

OnItemLongClickListener listener = new OnItemLongClickListener(){ 
      @Override 
      public boolean onItemLongClick(AdapterView<?> arg0, View view, int position, long id){ 

       TextView test = (TextView) view.findViewById(R.id.descriptionList); 

       description_string = test.getText().toString(); 
       Toast.makeText(getApplicationContext(), "Long Clicked " + description_string, Toast.LENGTH_SHORT).show(); 
       return false; 
      } 
     }; 
     lv.setOnItemLongClickListener(listener); 
에 : 여기가 변경된 것입니다