Есть список кнопок. На щелчок кнопки повешен обработчик, который открывает диалог (alert.show()).
При первом создании активити события работают без проблем. Но если выйти из активити и заново открыть ее из другой активити, вываливается ошибка при нажатии на кнопку: "Unable to add window is not valid; is your activity running". В чем может быть причина? Так же есть просто кнопка на форме. она отрабатывает как надо
event_list
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Button"
android:id="@+id/button4"
android:onClick="sendClick"/>
<ListView
android:layout_width="match_parent" android:layout_height="match_parent"
android:id="@+id/event_listview"
android:dividerHeight="10dp"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:alpha="1"
android:divider="#00ffffff">
</ListView>
</LinearLayout>
ListEventActivity
public class ListEventActivity extends Activity {
static EventsAdapter nonsendedAdapter;
private static final String TAG = "myLogs";
public void butClick(View v) {
//Button b = (Button)findViewById(R.id.button4);
// b.performClick();
sendClick(v);
}
public void sendClick(View v) {
try{
Log.d(TAG, "MainActivity.sendClick");
Context context = getParent();
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Важное сообщение!")
.setMessage("Покормите кота!")
.setCancelable(false)
.setNegativeButton("ОК, иду на кухню",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
}
catch (Exception e) {
Log.d(TAG, "MainActivity.sendClick error " + e.getMessage());
}
}
protected void onResume() {
super.onResume();
}
public void initInterface() {
ListView nonsendedList = getNonsendedListView();
if (nonsendedAdapter == null) {
nonsendedAdapter = new EventsAdapter(this, EventsAdapter.MODE_UNSENDED, nonsendedList, this);
} else {
nonsendedAdapter.loadData();
}
nonsendedList.setAdapter(nonsendedAdapter);
}
public void notifyAdapters() {
nonsendedAdapter.notifyDataSetChanged();
}
public ListView getNonsendedListView() {
return (ListView)nonsendedView;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.event_list);
Intent intent = getIntent();
nonsendedView = (ListView)findViewById(R.id.event_listview);
initInterface();
}
ListView nonsendedView;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_maps, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
this.onBackPressed();
}
return super.onOptionsItemSelected(item);
}
@Override
protected void onDestroy() {
Log.d(TAG, "destroy ");
nonsendedView.setAdapter(null);
super.onDestroy();
}
}