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

Odpowiedz Nowy wątek
2014-12-29 23:07
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();

            }

        });
    }

}

Pozostało 580 znaków

2014-12-29 23:57
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.

edytowany 2x, ostatnio: wiciu, 2014-12-29 23:59
ja bym trzymał Intent do konkretnej aktywności zamiast samej activiti - wojciechmaciejewski 2014-12-30 08:01

Pozostało 580 znaków

2014-12-30 10:25
0

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

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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