在 android 中单击列表视图项目时崩溃
Getting crash on clicking of listview item in android
我有两个 Activity 和一个模型 class。在Activity一个
我有名为 cityA、cityB、cityC 等的城市。
在第二个 activity 中,我显示了 7 个 TextView
根据城市名称的详细信息。
尝试执行 intent.putExtra
但崩溃了。请告诉
如果我遗漏了一些东西。
注意:如果我点击 cityA 详细信息应该只有
来自城市A。
ActivityA
的代码
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);
Activity 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....
我不知道..我缺少位置或其他东西,但正在崩溃
崩溃日志
java.lang.ClassCastException: java.lang.String cannot be cast to com.project_android.Citytable
在你的activity一个
listView.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
CityTable table1 = (CityTable)listView.getItemAtPosition(i);
...
}
CityTable table1 = (CityTable)listView.getItemAtPosition(i);
必须是导致您崩溃的行。您的适配器列表必须是一种类型,而您正试图将其转换为另一种类型 - CityTable。
您必须在类型为 CityTable 的适配器中创建列表。
我有两个 Activity 和一个模型 class。在Activity一个
我有名为 cityA、cityB、cityC 等的城市。
在第二个 activity 中,我显示了 7 个 TextView
根据城市名称的详细信息。
尝试执行 intent.putExtra
但崩溃了。请告诉
如果我遗漏了一些东西。
注意:如果我点击 cityA 详细信息应该只有 来自城市A。
ActivityA
的代码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);
Activity 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....
我不知道..我缺少位置或其他东西,但正在崩溃
崩溃日志
java.lang.ClassCastException: java.lang.String cannot be cast to com.project_android.Citytable
在你的activity一个
listView.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
CityTable table1 = (CityTable)listView.getItemAtPosition(i);
...
}
CityTable table1 = (CityTable)listView.getItemAtPosition(i);
必须是导致您崩溃的行。您的适配器列表必须是一种类型,而您正试图将其转换为另一种类型 - CityTable。
您必须在类型为 CityTable 的适配器中创建列表。