2つのリストビューで問題が発生しています。それぞれがアクティビティによって生成されました。リストビューAのアイテムリストから、リストAの特定のアイテムのリストビューBに行くことができます。Android:リストビューからリストビューに戻るときの問題
問題は、私がAからBに移動し、 )その後、A、再びBに移動しようとすると: ( - >Bからバックボタン - > - >エラーBに移動しようとしています)。
バグの検索をどこから開始するのか本当に分からないので、ここで質問したかったのです。同じエラーが発生した誰もが解決策を共有できるのですか?
ありがとうございます!
EDIT:
LISTVIEW::私は私は2つのリストビューを掲示し、私はバグを引き起こしている可能性がありますかわからない言ったように私は、ここに関連するコードを掲載してい それはイメージを持っています、緊急事態のタイトルと距離の詳細。
public class EmergenciesList extends ListActivity {
String[] listaEmergencias = new String[] { "Raoul Duffy con Wisconsin",
"Mac Iver con Moneda", "Cdte. Malbec con Barnechea",
"Av. Apoquindo con Pehuen", "Las Hualtatas con Indiana" };
String[] detalleEmergencias = new String[] { "< 50 mts", "2 km", "1,2 km",
"3,4 km", "350 mts" };
private Integer[] imgid = { R.drawable.chico, R.drawable.mediano,
R.drawable.grande, R.drawable.chico, R.drawable.mediano,
R.drawable.grande };
RelativeLayout layr1;
Animation ar3;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mInflater = (LayoutInflater) getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
data = new Vector<RowData>();
for (int i = 0; i < listaEmergencias.length; i++) {
try {
// RowData is just a private class for the title, details, and image.
rd = new RowData(i, listaEmergencias[i], detalleEmergencias[i]);
} catch (ParseException e) {
e.printStackTrace();
}
data.add(rd);
}
adapter = new CustomAdapter(this, R.layout.second_list, R.id.title, data);
setListAdapter(adapter);
getListView().setTextFilterEnabled(true);
}
public void onListItemClick(ListView parent, View v, int position, long id) {
adapter = (CustomAdapter) parent.getAdapter();
data.removeAllElements();
Intent singleEmergencyMenu = new Intent(EmergenciesList.this, EmergencyMenu.class);
Bundle container = new Bundle();
container.putInt("id", position);
singleEmergencyMenu.putExtra("data2", container);
startActivity(singleEmergencyMenu);
}
}
リストビューB:これは、ヘッダのチェックボックス、リストの三つの要素を有しています。問題は、あなたの意図を実装する予定です
public class EmergencyMenu extends ListActivity {
String[] emergencia = new String[] { "Mostrar ubicación",
"Carros asignados", "Archivos" };
final String SETTING_EMERGENCY = "id_actual_emergency";
private int emergencyID = -1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.emergencyID = getIntent().getBundleExtra("data2").getInt("id");
ListView lv = getListView();
lv.setTextFilterEnabled(true);
// A Header to have a single checkbox to select the emergency
LayoutInflater inflater = (LayoutInflater) this
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
TextView header = (TextView) inflater.inflate(
R.layout.list_reports_header, null);
lv.addHeaderView(header, null, false);
List<String> data = new ArrayList<String>();
for (int i = 0; i < emergencia.length; i++) {
try {
data.add(emergencia[i]);
} catch (ParseException e) {
e.printStackTrace();
}
}
setListAdapter(new ArrayAdapter<String>(this, R.layout.emergency_menu,
data));
LoadSelection();
CheckBox checkBox = (CheckBox) findViewById(R.id.select_emergency_id);
checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
SaveSelection();
}
});
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// Mostrar ubicación
if (position == 1) {
Toast.makeText(getApplicationContext(),"Mostrar ubicación", Toast.LENGTH_SHORT).show();
}
// Carros asignados
else if (position == 2) {
Toast.makeText(getApplicationContext(), "Carros asignados",Toast.LENGTH_SHORT).show();
}
// Archivos
else if (position == 3) {
Toast.makeText(getApplicationContext(),
"Archivos de la emergencia",Toast.LENGTH_SHORT).show();
}
}
});
}
@Override
protected void onPause() {
SaveSelection();
super.onPause();
}
// save the selections in the shared preference in private mode for the
// user
private void SaveSelection() {
CheckBox checkBox = (CheckBox) findViewById(R.id.select_emergency_id);
if (checkBox.isChecked()) {
SharedPreferences settingsActivity = getPreferences(MODE_PRIVATE);
SharedPreferences.Editor prefEditor = settingsActivity.edit();
prefEditor.putInt(SETTING_EMERGENCY, emergencyID);
prefEditor.commit();
}
}
// Check the checkbox if this is the actual emergency (selected before).
private void LoadSelection() {
SharedPreferences settingsActivity = getPreferences(MODE_PRIVATE);
if (settingsActivity.contains(SETTING_EMERGENCY)) {
// Checkbox de seleccionar la emergencia
int id_actual = settingsActivity.getInt(SETTING_EMERGENCY, -1);
if (emergencyID == id_actual) {
CheckBox checkBox = (CheckBox) findViewById(R.id.select_emergency_id);
checkBox.setChecked(true);
}
}
}
}
スタックトレースの表示について – mibollma
どうすれば入手できますか?私は昨日試しましたが、Eclipseコンソールではアプリのデプロイメントを電話でしか見せなかったので、ログを見つけることができませんでした。それが関連しているなら、私はマックにいる。 – Tere