2017-11-09 2 views
2

Ich habe zwei Aktivitäten und eine Modellklasse. In Aktivität A habe ich Städte cityA, cityB, cityC und so weiter. In der zweiten Aktivität habe ich 7 TextViews, wo ich Details nach Städtenamen anzeigen. Versucht, intent.putExtra zu tun, aber Crash bekommen. Bitte sagen Sie mir wenn mir etwas fehlt.Absturz beim Klicken auf Listenansicht Element in Android

Hinweis: Wenn ich auf cityA klicke, sollten nur Details von cityA sein.

Code von Aktivität A

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
         @Override 
         public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 
          CityTable table1 = (CityTable)listView.getItemAtPosition(i); 
          String toolbartitle = table1.getAreaName(); //for toolbar 
          String population = table1.getPopulation_2015(); 
          String established = table1.getYearEstablished(); 


Intent intent = new Intent(getApplicationContext(), ActivityB.class); 
          intent.putExtra("toolbartitle",toolbartitle); 
          intent.putExtra("population",population); 
          intent.putExtra("established",established); 
          startActivity(intent); 

Code von Aktivität B

List<CityTable> tablecity= new ArrayList<>(); 
    tablecity.addAll((List<CityTable>) result); 
for (final CityTable city : tablecity){ 
String toolbartitle = getIntent().getExtras().getString("toolbartitle"); 
        String population = getIntent().getExtras().getString("population"); 
        String established = getIntent().getExtras().getString("established"); 

    textview1 = (TextView) findViewById(R.id.textview1); 
        textview2 = (TextView) findViewById(R.id.textView3); 
        textview3 = (TextView) findViewById(R.id.textView4); 


    textview1.setText(population); 
and so on.... 

ich nicht know..i mit Position oder etwas anderes bin fehlt, aber immer Absturz

Crashlog

java.lang.ClassCastException: java.lang.String cannot be cast to com.project_android.Citytable 
+1

Hi @Vivek, geben Sie bitte den Typ der Liste an, die Sie in der ListView verwenden. –

+0

final Liste citytable = new ArrayList <>(); –

+0

Bitte geben Sie den Code Ihres Adapters an. –

Antwort

1

In Ihrer Tätigkeit A

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() 
    { 
     @Override 
     public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 
     CityTable table1 = (CityTable)listView.getItemAtPosition(i); 
     ... 
    } 

CityTable tabelle1 = (CityTable) listView.getItemAtPosition (i);

muss die Zeile sein, die den Absturz verursacht. Ihre Adapterliste muss von einem Typ sein und Sie versuchen, sie in einen anderen Typ zu konvertieren - CityTable.

Sie müssen die Liste im Adapter vom Typ CityTable erstellen.

+1

das sollte definitiv dein Problem gut gelöst lösen. –

Verwandte Themen