Połączenie ListView z nową aktywnością Android

0

Witam,

Proszę o pomoc w połączeniu poszczególnych pozycji z ListView z nowymi aktywnościami. Chodzi mi o to, aby po kliknięciu/dotknięciu konkretnej pozycji na ListView aplikacja przenosiła no nowej/konkretnej aktywności.

Proszę o mały instruktarz jak mogę to zrobić, najprostszym sposobem.

Poniżej kod ListView.

package com.example.projekt1;
 
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
 
public class Figury_3d extends Activity {
 
    ListView listView;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_figury_3d);
 
        listView = (ListView) findViewById(R.id.list);
 
        String[] values = new String[] { "Stożek", "Walec", "Sześcian", "Kula",
                "> Wizualizacja figur", };
 
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, android.R.id.text1, values);
 
        listView.setAdapter(adapter);
 
        listView.setOnItemClickListener(new OnItemClickListener() {
 
            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
 
                int itemPosition = position;
 
                String itemValue = (String) listView
                        .getItemAtPosition(position);
 
                Toast.makeText(getApplicationContext(),
                        "Pozycja:" + itemPosition + "  Wybrano: " + itemValue,
                        Toast.LENGTH_LONG).show();
 
            }
 
        });
    }
 
}
0

Moim zdaniem, powinieneś wykonać następujące kroki:

  1. Stworzyć swój adapter (może on dziedziczyć po BaseAdapter)
  2. Ustawić Twój nowy adapter dla ListView zamiast obecnego ArrayAdapter-a
  3. Twój nowy adapter powinien przyjmować listę obiektów, które posiadają dwa pola typu: String, Activity
  4. W adapterze definiujesz kod odpowiedzialny za wyświetlanie stringów na liście (bodajże w metodzie getView())
  5. W adapterze definiujesz kod odpowiedzialny za uruchomienie Intenta z zadanym Activity w metodzie onItemClick() - to samo zrobiłeś już w swoim kodzie ustawiając listener na ListView. Wystarczy tę implementację przenieść do adaptera i ją zaktualizować.

PS. Poczytaj o czystym kodzie i Java Code Style Conventions.

0

Użyj intent aby otworzyć nową aktywność.

1 użytkowników online, w tym zalogowanych: 0, gości: 1