2015-03-22 2 views
0

В моем основном действии у меня есть представление списка элементов базы данных, когда я долго нажимаю на элемент в списке, он открывается в новое действие, которое позволяет редактировать элемент, нажатый.Как получить rowID элемента списка в другом классе активности?

Проблема, с которой я сталкиваюсь, заключается в том, что я не совсем уверен, как получить информацию о rowID/primary key для другого класса java активности, чтобы я мог начать манипулировать в этом классе, например. установите начальные значения в качестве текущей информации о строке и затем сможете применить к ней обновление.

Incase это использование, чтобы помочь вам помочь мне вот что я должен взять меня к моей новой деятельности

dialog.setNegativeButton(R.string.dialogEdit, 
      new DialogInterface.OnClickListener() { 

       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        long id = idInDB; 
        Intent intent = new Intent(MainActivity.this, edit_expense.class); 
        startActivity(intent); 



       } 
      }); 

ответ

0

OnClick отправить идентификатор строки, используя putExtra

intent.putExtra("rowid", rowid); 

На второй активности получить дополнительная строка в onCreate()

String rowid = getIntent().getExtras().getString("rowid"); 
+0

thankyou, это был именно тот предмет знания, который я искал –

0

Я принимаю id это идентификатор вы хотите, чтобы перейти к другой деятельности, используйте Intent extras, чтобы передать его. intent.putExtra("key", id);

и получить значение в другой деятельности:

Intent intent = getIntent(); 
long id = intent.getLongExtra("key", -1); 

Намерение ссылка: https://developer.android.com/reference/android/content/Intent.html

0

Надеюсь, что в вашей строке списка есть textView, который содержит ID. Итак, когда вы загружаете listView, каждая строка добавит свой собственный уникальный идентификатор в textView. Теперь, когда вы нажимаете/удерживаете какой-либо конкретный элемент listItem, он вызывает событие click и будет извлекать идентификатор в строку rowID. Теперь вы можете передать этот идентификатор, используя намерение.

list.setOnLongClickListener(new AdapterView.OnLongClickListener() { 
      @Override 
      public void onLongClick(AdapterView<?> adapterView, View view, int i, long l) { 
       String rowID =((TextView) view.findViewById(R.id.rowID)).getText().toString(); 
       Intent nextActivity = new Intent(); 
       nextActivity.putExtra("id",rowID); 
       startActivity(); 
} 
Смежные вопросы