2011-04-09 2 views
1

Я могу добавить в базу данных и список в виде списка. Когда я нажимаю элемент списка, используя onListItemClick, какое заявление мне нужно для получения значения? Это срочно PLS объяснить с PLS PLS PLS заранее.Как получить значение из базы данных в элементе списка списка в соответствии с положением элемента списка

package cabs.h; 

import android.widget.SimpleCursorAdapter; 
import android.widget.Toast; 
import android.widget.AdapterView.AdapterContextMenuInfo; 
    public class planner extends ListActivity { 
    private static final int ACTIVITY_CREATE=0; 
    private static final int ACTIVITY_EDIT=1; 
    private static final int INSERT_ID = Menu.FIRST; 
    private static final int DELETE_ID = Menu.FIRST + 1; 
    private NotesDbAdapter mDbHelper; 
    private Long mRowId; 
    private ServerResponce AllList; 
    // private DeviceListAdapter AllList; 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.listonruntime); 
     mDbHelper = new NotesDbAdapter(this); 
     mDbHelper.open(); 
     fillData(); 
     registerForContextMenu(getListView()); 

     String responce = null ; 
     // startManagingCursor(responce); 
     //AllList = new ServerResponce(responce); 
    } 
    private void fillData() { 
     Cursor notesCursor = mDbHelper.fetchAllNotes(); 
     startManagingCursor(notesCursor); 

     // Create an array to specify the fields we want to display in the list (only TITLE) 
     String[] from = new String[]{NotesDbAdapter.KEY_BODY,NotesDbAdapter.KEY_TITLE,NotesDbAdapter.KEY_NUMBER}; 

     int[] to = new int[]{R.id.toptext,R.id.middletext,R.id.circle}; 

     SimpleCursorAdapter notes = 
            new SimpleCursorAdapter(this, R.layout.row, notesCursor, from, to); 

    setListAdapter(notes); 

    } 




    @Override 
    public void onCreateContextMenu(ContextMenu menu, View v, 
      ContextMenuInfo menuInfo) { 
     super.onCreateContextMenu(menu, v, menuInfo); 
     menu.add(0, DELETE_ID, 0, R.string.menu_delete); 
    } 

    @Override 
    public boolean onContextItemSelected(MenuItem item) { 
     switch(item.getItemId()) { 
      case DELETE_ID: 
       AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); 
       mDbHelper.deleteNote(info.id); 
       fillData(); 
       return true; 
     } 
     return super.onContextItemSelected(item); 
    } 

     @Override 
    protected void onSaveInstanceState(Bundle outState) 
    { 
     super.onSaveInstanceState(outState); 
     saveState(); 
     outState.putSerializable(NotesDbAdapter.KEY_ROWID, mRowId); 
    } 

    @Override 
    protected void onPause() { 
     super.onPause(); 
     saveState(); 
    } 

    @Override 
    protected void onResume() { 
     super.onResume(); 

    } 
     // ServerResponce servresp=new ServerResponce(); 
     String responceId = Activity1.getData(); 
     String responceno = Activity2.getData(); 
     String city = cabbookingapplication.Selection; 
     String area = cabbookingapplication.Selection2; 
     String exactadd = cabbookingapplication.Selection3; 
     String nearby = cabbookingapplication.Selection4; 
     private void saveState() { 
     String title =("FROM LOC::"+city+","+area+","+exactadd+","+nearby); 
     String body = ("TO LOC::"+city+","+area+","+exactadd+","+nearby); 
     String number = (""+responceno+",,"+responceId); 
      if (mRowId == null) { 
      long id = mDbHelper.createNote(title, body, number); 
      if (id > 0) { 
       mRowId = id; 
      } 
     } else { 
      mDbHelper.updateNote(mRowId, title, body,number); 
      } 
     } 

    @Override 
    protected void onListItemClick(ListView l, View v, int position, long thisID) 
    { 
     super.onListItemClick(l, v, position, thisID); 
     String resposponseid = Activity2.getData(); 
     Object o = this.getListAdapter().getItemId(position); 


     // String device_name = (String) (planner.this). getListAdapter().getItem(position); 


     Toast.makeText(this, "this row responceid is= " + " " + keyword, Toast.LENGTH_LONG).show(); 


    } 


    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent intent) 
    { 
     super.onActivityResult(requestCode, resultCode, intent); 
     fillData(); 

    } 

} 

и элемент списка нажмите я хочу retrive значения сохраняется в элементе списка в соответствии с положением строки что делать

@Override 
    **protected void onListItemClick(ListView l, View v, int position, long thisID) 
    { 
     super.onListItemClick(l, v, position, thisID); 
     String resposponseid = Activity2.getData(); 
     Object o = this.getListAdapter().getItemId(position); 



      Toast.makeText(this, "this row responceid is= " + " " + keyword, Toast.LENGTH_LONG).show(); 


    }** 

ответ

2

Если проверить документацию для метода onListItemClick() вы можете увидеть, что последним параметром является идентификатор строки щелкнутого элемента.

Этот метод будет вызываться, когда выбран пункт в списке. Подклассы должны переопределяться. Подклассы могут вызывать getListView(). GetItemAtPosition (position) , если им необходимо получить доступ к данным , связанным с выбранным элементом.

Параметры

L: ListView, где защелкивающийся произошло

V: вид, что была нажата в ListView

положение: Положение точки зрения в списке

ид : Идентификатор строки элемента, который был , нажал

Но для получения правильного идентификатора строки важно, чтобы курсор, который был передан адаптеру, содержит строку с именем «_id», представляющую уникальный идентификатор для каждой строки в таблице.

Смежные вопросы