【发布时间】:2019-08-12 23:43:54
【问题描述】:
我有一个从 sql 数据库填充的列表视图。列表视图位于片段下。我的数据库包含三个项目
- 身份证
- 电话名称
- 电话号码
我试图从列表视图中提取电话名称并将其显示在 Android 中的 toast 显示功能中作为起点,但是当我尝试使用 onItemClick 从列表视图中获取电话名称时,它完全忽略了它并且不执行。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View view = inflater.inflate(R.layout.fragment_select_modem, container, false);
btn_add = (Button) view.findViewById(R.id.btn_add);
// Display list setup
display_contacts1 = (ListView) view.findViewById(R.id.display_contacts);
final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(view.getContext(), android.R.layout.simple_list_item_1, display_contacts);
display_contacts1.setAdapter(arrayAdapter);
//--------------------------------------------------------------
// Database Setup
//--------------------------------------------------------------
dbHelper = new DataDBAdapter(getActivity());
dbHelper.open();
// Add the data
dbHelper.insertSomeValues();
// Generate Listview from SQL Lite database
displayListView();
btn_add.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
Intent contactPickerIntent = new Intent(Intent.ACTION_PICK, ContactsContract.CommonDataKinds.Phone.CONTENT_URI);
startActivityForResult(contactPickerIntent, PICK);
}
});
// This part is not working
display_contacts1.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> adapter, View view, int position, long id)
{
Cursor cursor1 = (Cursor)SelectModemFragment.display_contacts1.getItemAtPosition(position);
String NAME = cursor1.getString(cursor1.getColumnIndex(DataDBAdapter.KEY_PHONE_NAME));
Toast.makeText(view.getContext(), NAME, Toast.LENGTH_SHORT).show();
}
});
【问题讨论】: