У меня проблема с моим приложением для Android.Вероятно, это простая проблема с Java, но я недостаточно хорошо знаю Java, чтобы знать, что гуглить.Ниже приведена упрощенная версия того, что у меня есть, которая иллюстрирует мою проблему.Я хочу иметь возможность доступа к gridview
из моего диалога.Понятно, что у меня здесь не так.Я попытался переместить объявление за пределы метода onCreate, но затем мое приложение вылетает в самом начале (сообщения об ошибке нет).Я также попытался добавить его в качестве аргумента к ShowDialog
, но, думаю, поскольку я переопределяю эту функцию, которая не работала.Как вы, вероятно, можете сказать, я не знаю, что я делаю.Мысли?
public class HelloGridView extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ImageAdapter(this));
((ImageAdapter) gridview.getAdapter()).initializemThumbIds();
gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
showDialog(0);
}
});
}
protected Dialog onCreateDialog(int id) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("?")
.setCancelable(false)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
gridview.setAdapter(new ImageAdapter(this)); // gridview cannot be resolved
dialog.cancel();
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
HelloGridView.this.finish();
}
});
AlertDialog diag = builder.create();
return diag;
}
}