Frage zu ListViews - Wie auf eine Activity verweisen?

  • Antworten:4
  • Bentwortet
Talsan
  • Forum-Beiträge: 94

11.02.2015, 12:53:04 via Website

Moin

Ich hab mir jetzt eine ListView erstellt. Daten werden auch übernommen und sieht wirklich sehr schön aus :).
Jetzt habe ich aktuell beim Klick auf einen Menüpunkt nur einen Text der eingeblendet wird.
Also wie bekomm ich das jetzt geändert zu einem verweis auf eine Activity?

Ich stell mir das so vor:

Das ist aktuell mein code.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_show_stallgemein);

    //ListView
    ListViewStoer = (ListView) findViewById(R.id.listViewStoer);

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, stoerungen);
    ListViewStoer.setAdapter(adapter);
    ListViewStoer.setOnItemClickListener(this);


}

@Override
public void onItemClick(AdapterView<?> lV, View view, int pos, long id) {
    Toast.makeText(this, "Sifa " + stoerungen[pos] + " ausgewählt!",
            Toast.LENGTH_SHORT).show();
}

    @Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_show_stallgemein, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);

Ich würde jetzt jeweils das

Toast.makeText(this, "Sifa " + stoerungen[pos] + " ausgewählt!",

abändern. Weil diese Zeile gibt ja dann den Text aus. Sollte also die richtige Stelle zum ändenr sein, oder?

Geht das wie bei einfachen Buttons? Also als onClick?

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

11.02.2015, 14:32:26 via App

Du hast ja schon einen onClick alo onItem click.
Du brauchst nur noch eine switch welche zwischen den Positionen unterscheidet. und jede Position ist eine anderer Klixk auf ein anderes Item.

Im intet findest du beispiele dazu.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Talsan
  • Forum-Beiträge: 94

11.02.2015, 14:48:10 via Website

Sehe ich das denn richtig mit der Stelle wo ich den Code dann einfüge?

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

11.02.2015, 14:54:12 via Website

Nicht sehen! Denken.
Dein Code muss ja in die onItemClick, da diese ja von der ListView aufgerufen wird.
So müsste es dann in etwa aussehen:

@Override
public void onItemClick(AdapterView<?> lV, View view, int pos, long id) {
    switch(pos)
{
case 0: //hier alles für Item 0
 break;

case 1: //hier alles für Item 1
break;
//usw. bis du alle ItemIDs abgedekt hast.
}
}

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Talsan
  • Forum-Beiträge: 94

11.02.2015, 22:56:20 via Website

Arbeitet er die Strings bei den case in der reihenfolge ab wie sie da stehen?

private String[] beispiel = new String[] {"Beispiel 1", "Beispiel 2", "Beispiel 3", "Beispiel 1",

Also case 0 ruft "Beispiel 1", case 1 "Beispiel 2", case 2 "Beispiel 3", usw

Edit:

Ok habs :D

    @Override
public void onItemClick(AdapterView<?> lV, View view, int pos, long id) {

    switch (pos) {

        case 0:
            Intent myIntent1 = new Intent(view.getContext(), ShowBfEHG.class);
            startActivityForResult(myIntent1, 0);
            break;
        case 1:
            Intent myIntent2 = new Intent(view.getContext(), ShowBR428.class);
            startActivityForResult(myIntent2, 0);
            break;
    }

}

— geändert am 11.02.2015, 23:16:27

Antworten