У меня есть база данных с 3 таблицами. Это «Проекты», «Контакты» и «Типы проектов». У меня есть пользовательский интерфейс для создания (добавления записи) нового проекта, который добавляет запись в таблицу «Проекты». В этом пользовательском интерфейсе у меня есть кнопка для получения имен контактов из таблицы «Контакты», которая, в свою очередь, отображает ListView всех контактов. Когда имя выбрано, оно должно вернуться к интерфейсу проектов, и имя должно быть отображено в EditText. Тем не менее, я продолжаю получать это в EditText: [email protected]Проблема приведения результата из базы данных SQLite в EditText
Я хочу добавить фрагменты кода к сообщению для консультации.
ListActivity OnCreate() Код:
public class ContactsList extends ListActivity {
DBAdapter dbContactList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.editproject_list);
dbContactList = new DBAdapter(this);
// Pull the data from the database
String[] fields = new String[] { dbContactList.TABLE_CON_NAME };
int[] views = new int[] { android.R.id.text1 };
Cursor c = dbContactList.getAllContacts();
startManagingCursor(c);
// Set the ListView
ListAdapter prjName = new SimpleCursorAdapter(this,
android.R.layout.simple_list_item_1, c, fields, views);
setListAdapter(prjName);
dbContactList.close();
}
Код onListItemClick:
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
// Get the item that was clicked
Intent selectedContact = new Intent();
Object o = this.getListAdapter().getItem(position);
String keyword = o.toString();
selectedContact.putExtra("selectedcontact", keyword);
setResult(RESULT_OK, selectedContact);
finish();
}
И код Проекты UI, чтобы начать деятельность для ListView и для получения результатов:
public void onClickContactPicker(View target)
{
Intent contactPicker = new Intent(this, com.dzinesunlimited.quotetogo.ContactsList.class);
startActivityForResult(contactPicker, contact);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
String contact = data.getExtras().getString("selectedcontact").toString();
((EditText)findViewById(R.id.txtProjectContacts)).setText(contact);
}
Это запрос() от адаптера DB
public Cursor getAllContacts()
{
Cursor cursor = null;
try
{
cursor = db.query(TABLE_CONTACTS, new String[] {
TABLE_CON_ID, TABLE_CON_NAME, TABLE_CON_EMAIL,
TABLE_CON_EXPERTISE, TABLE_CON_CHARGES},
null,
null,
null,
null,
null);
}
catch (SQLiteException e)
{
Log.e("Database.addRow", "Database Error: " + e.toString());
e.printStackTrace();
}
return cursor;
}
Прошу совета относительно решения этого вопроса.
Заранее спасибо.
Вы уверены, что поле, которое вы запрашиваете, является правильным? – fedj
Я не уверен, что вы подразумеваете под этим. Но если вы хотите отбросить его вправо EditText, да. Я также использовал тост, прежде чем я попытался применить его к EditText, но он все еще показывает тот же результат в тосте. О, мое плохое. Да сэр. Я запрашиваю правильное поле в запросе. Позвольте мне добавить запрос адаптера() для справки. –