Q
qwert_zuiopue
Fortgeschrittenes Mitglied
- 6
Hallo,
in meinem Programm soll dem Benutzer durch Drücken eines Buttons ein Dateiauswahldialog angezeigt werden. Wird eine Datei ausgewählt, wird eine neue Activity gestartet. Das funktioniert soweit. Wird allerdings der zurück-Button gedrückt, dann verschwindet zwar der Dialog und das Hauptfenster rückt in den Vordergrund, aber in der Titelleiste steht immer noch "Dateiauswahldialog", wie ich diese Activity auch genannt habe. Außerdem lassen sich nun die Knöpfe auch nicht bedienen (die aus dem angezeigten Hauptmenü). Erst nach einem weiteren Drücken auf den Zurück-Button erfolgt das gewünschte verhalten.
Woran kann das liegen und welche Quelldateien soll ich eventuell posten?
Danke schonmal für eure Geduld mit mir
Der ursprüngliche Beitrag von 16:28 Uhr wurde um 16:33 Uhr ergänzt:
Hier mal der Filechooser auf das Wesentliche reduziert:
und so wird dieser aufgerufen:
in meinem Programm soll dem Benutzer durch Drücken eines Buttons ein Dateiauswahldialog angezeigt werden. Wird eine Datei ausgewählt, wird eine neue Activity gestartet. Das funktioniert soweit. Wird allerdings der zurück-Button gedrückt, dann verschwindet zwar der Dialog und das Hauptfenster rückt in den Vordergrund, aber in der Titelleiste steht immer noch "Dateiauswahldialog", wie ich diese Activity auch genannt habe. Außerdem lassen sich nun die Knöpfe auch nicht bedienen (die aus dem angezeigten Hauptmenü). Erst nach einem weiteren Drücken auf den Zurück-Button erfolgt das gewünschte verhalten.
Woran kann das liegen und welche Quelldateien soll ich eventuell posten?
Danke schonmal für eure Geduld mit mir
Der ursprüngliche Beitrag von 16:28 Uhr wurde um 16:33 Uhr ergänzt:
Hier mal der Filechooser auf das Wesentliche reduziert:
public class Filechooser extends Activity {
private String[] mFileList;
private File mPath;
private static final String FTYPE = "";
private static final int DIALOG_LOAD_FILE = 1000;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Resources res = getResources();
streckeausw = String.format(res.getString(R.string.strauswahl));
loadFileList();
Dialog dialog = onCreateDialog(DIALOG_LOAD_FILE);
dialog.show();
}
private void loadFileList(){
String EXTERNAL_STORAGE = Environment.getExternalStorageDirectory().toString();
mPath = new File((EXTERNAL_STORAGE+"/"+"Android/data/"));
try{
mPath.mkdirs();
}
catch(SecurityException e){
Log.e("log", "unable to write on the sd card " + e.toString());
}
if(mPath.exists()){
FilenameFilter filter = new FilenameFilter(){
public boolean accept(File dir, String filename){
File sel = new File(dir, filename);
return filename.contains(FTYPE) || sel.isDirectory();
}
};
mFileList = mPath.list(filter);
}
else{
mFileList= new String[0];
}
}
protected Dialog onCreateDialog(int id){
Dialog dialog = null;
AlertDialog.Builder builder = new Builder(this);
switch(id){
case DIALOG_LOAD_FILE:
builder.setTitle("Auswahldialog");
if(mFileList == null){
Log.e("tag", "Showing file picker before loading the file list");
dialog = builder.create();
return dialog;
}
builder.setItems(mFileList, new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int which){
Intent intent = new Intent(Filechooser.this, Next.class);
intent.putExtra("file",mFileList[which]);
startActivity(intent);
finish();
}
});
break;
}
dialog = builder.show();
return dialog;
}
@Override
public void onBackPressed() {
finish();
}
}
und so wird dieser aufgerufen:
public void onClick(View arg0) {
if(arg0 == dateiauswahl) {
Intent intent = new Intent(this,Filechooser.class);
startActivity(intent);
}
}