2015-08-11 7 views
-1

Im, очень новый для этого развития Android. То, что я пытаюсь сделать, - передать идентификатор от MainActivity до Details. Поэтому мне нужно получить идентификатор от MainActivity, чтобы отобразить информацию о человеке в классе Details. Я могу передать идентификатор уже и отобразить его, но у меня возникли проблемы с отображением деталей этого конкретного идентификатора, который из значений базы данных. Как я могу отобразить содержимое этого конкретного идентификатора в классе Details, используя функцию базы данных getDetails(id);? Мне нужно отобразить его в текстовом виде класса активности Details. Пожалуйста, помогитеAndroid Получить данные из базы данных из значения намерения

DB Функция

public Cursor getDetails(String id) { 
      return database.query(TABLENAME, null, id + "=" + id, null, null, 
        null, null); 
     } 

MainActivity.java

this.listView.setOnItemClickListener(new OnItemClickListener() { 
        @Override 
        public void onItemClick(AdapterView<?> arg0, View view, int position, long arg3){ 

         TextView txtID = (TextView) view.findViewById(R.id.id); 

         String id = txtID.getText().toString(); 

         Intent intent = new Intent(MainActivity.this, Details.class); 
         intent.putExtra("id", id); 

         startActivity(intent); 
        } 
       }); 

В Details.java, я хочу, чтобы отобразить здесь содержимое ID, который находится на базе. Как я могу обратиться к этой функции и сделать ее отображаемой с помощью идентификатора с переданного намерения?

Details.java

Intent i = getIntent(); 
String id = i.getStringExtra("id"); 

txtId = (TextView) findViewById(R.id.id); 
txtName= (TextView) findViewById(R.id.name); 
txtAbout = (TextView) findViewById(R.id.about); 

txtId.setText(id); 
txtName.setText(name); 
txtAbout .setText(about); 
+0

Точно так же, как 'id' бы не от намерения – Selvin

+0

я не понимаю - вы дон 't называть 'getDetails()' где угодно? – PPartisan

+0

@PPartisan Я хочу вызвать getDetails() в Details.java, но я не знаю, как это сделать. – Jah

ответ

0
public HashMap<String,String> getDetails(String id) { 
    HashMap<String, String> hm = new HashMap<>(); 
    SQLiteDatabase db = getWritableDatabase(); 
    Cursor c = db.query(TABLENAME, null, "id=?", new String[]{id}, null, null, null); 
    if(c.getCount()>0){ 
     c.moveToFirst(); 
     hm.put(KEY, c.getString(c.getColumnIndex(COLUMN_NAME))); 
    // do this for all columns that you want. 
    } 
    c.close(); 
    db.close(); 
    return hm; 
} 

и Details.java

String id = getIntent().getExtras.getString("id"); 
HashMap<String, String> hm = (Your database class Object).getDetails(id); 
if(hm.size()>0){ 
    String value1 = hm.get(KEY); 
// get all data and show according to you. 
} 
Смежные вопросы