@madm0nkey

Как перейти на новое activity с элемента listView, заполненного через SimpleCursorAdapter?

Помогите разобраться с такой проблемой:
Есть список listView, который получает данные из БД через SimpleCursorAdapter. По нажатию на элемент списка нужно перейти на новое Activity, у меня не выходит...
Нагуглить тоже не получается, везде примеры либо с ListActivity, либо с ArrayAdapter, либо только с логами, без перехода на другое activity.

Еще здесь же нужно сделать, чтобы цвета элементов чередовались. Думаю, это тоже можно сделать с помощью position, но пока даже не могу попробовать.

Вот код activity:
public class BasicoActivity extends ActionBarActivity  {
 
        ListView lv1;
    Cursor words;
    MyDatabase db;
    String LOG_TAG = "myLogs";
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_basico);
 
        final ActionBar actionBar = getSupportActionBar();
        actionBar.setHomeButtonEnabled(true);
        actionBar.setDisplayHomeAsUpEnabled(true);
 
        lv1 = (ListView) findViewById(R.id.lv1);
        db = new MyDatabase(this);
        words = db.getWords();
        startManagingCursor(words);
 
        SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
                R.layout.item_lesson,
                words,
                new String[]{"word", "trans_w"},
                new int[] {R.id.espUnit, R.id.rusUnit});
        lv1.setAdapter(adapter);
 
        lv1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> av, View v, int position, long id) {
 
                Log.d(LOG_TAG, "itemClick: position = " + position + ", id = "
                        + id);
 
                //выход в новое Activity
                //Intent intent1 = new Intent(BasicoActivity.this, MainActivity.class);
                //startActivity(intent1);
                }
        });
 
    }


Вот код разметки элемента списка item_lesson.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
 
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/espUnit"
        android:layout_marginTop="10dp"
        android:layout_marginLeft="10dp"/>
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/rusUnit"
        android:layout_marginBottom="10dp"
        android:layout_marginLeft="10dp"/>
</LinearLayout>


Файл разметки activity_basico.xml:
<?xml version="1.0" encoding="utf-8"?>
<ListView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/lv1"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".BasicoActivity"/>
  • Вопрос задан
  • 1104 просмотра
Пригласить эксперта
Ответы на вопрос 1
@kaftanati
Инженер-энтузиаст
Рабочий пример практически без изменений.

lv1 = (ListView) rootView.findViewById(R.id.lvItems);
lv1.setClickable(true);

lv1.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            //  selected_position_list = lv1.getFirstVisiblePosition();
            //  long lv_id = parent.getItemIdAtPosition(position);

            Intent intent = new Intent(getActivity(), ***.class);

            if (activity != null) {
                activity.startActivity(getActivity());
            }

        }
    });
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы