невозможно получить данные из выбранного элемента в ListView - PullRequest
0 голосов
/ 19 декабря 2018

У меня есть представление списка, которое я заполняю именами и номерами контактов телефона, теперь я хочу получить данные выбранного элемента в списке просмотра, чтобы отправить их в другое действие, но когда я нажимаю на любой элемент, я ничего не получаю иshowtoast показывает только индекс столбца, а не данные выбранного элемента, что мне здесь не хватает?

import android.app.LoaderManager;
import android.content.CursorLoader;
import android.content.Loader;
import android.database.Cursor;
import android.database.DatabaseUtils;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.Toast;

public class AddExistingContact extends AppCompatActivity implements LoaderManager.LoaderCallbacks<Cursor> {
    private ListView contactlist;
    private SimpleCursorAdapter simpleCursorAdapter;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.contacts_list_view);
    contactlist = findViewById(R.id.listview_Android_Contacts);
    getLoaderManager().initLoader(1, null, this);
    populateListView();
}

@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
    if (id == 1) {
        return new CursorLoader(this, ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);
    }
    return null;
}

@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
    if (cursor != null && cursor.getCount() > 0) {
        String[] from = {ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER, ContactsContract.CommonDataKinds.Phone._ID};
        int[] to = {R.id.textview_android_contact_name, R.id.textview_android_contact_phoneNr, R.id.textview_android_contact_id};
        simpleCursorAdapter = new SimpleCursorAdapter(this, R.layout.contacts_list_item, cursor, from, to, 0);
        contactlist.setAdapter(simpleCursorAdapter);
    }
}

@Override
public void onLoaderReset(android.content.Loader<Cursor> loader) {
}

private void populateListView() {
    contactlist.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Cursor newcursor = (Cursor) simpleCursorAdapter.getItem(position);
            if (newcursor.getCount() == 0) {
            } else {
                //ShowToast("got records");
                newcursor.moveToFirst();
                ShowToast(newcursor.getString(2));
                Log.v("Cursor Object", DatabaseUtils.dumpCursorToString(newcursor));
            }
        }
    });
}

private void ShowToast(String Text) {
    Toast.makeText(getApplicationContext(), Text, Toast.LENGTH_SHORT).show();
}
}
...