jeudi 23 avril 2015

Variablen Variable behält nicht den zugewiesenen Wert

Hallo,

ich bin ein Java-Anfänger und programmiere nur aus Spass an der Freude. Ich habe mir ein OpenDialog für Android zusammengeschustert, und nun stehe ich vor folgendem Problem. Ich habe eine globale Variable deklariert und der wird in einer Methode die eine Listener Methode enthält einen Wert in der Listener Methode zugewiesen. Nun enthält die Variable, wenn die Methode sie zurückgeben soll, nicht den zugewiesenen Wert aus der Listener Methode. Kann mir vielleicht jemand erklären, wieso die Variable den Wert nicht behält und wie ich das Problem lösen kann.

Hier mein...

Java Code:

  1.  
  2. class FileDialog {
  3.  
  4. // Die o.g. Variable
  5.  
  6. private String fileName;
  7.  
  8. public String OpenDialog(Context c, String p, String fN, String t, ListView lv) {
  9.  
  10. context = c;
  11. path = p;
  12. fileName = fN;
  13. text = t;
  14. list = lv;
  15.  
  16. final Dialog dialog = new Dialog(context, R.style.FullHeightDialog);
  17. dialog.setContentView(R.layout.alert_opendialog);
  18. listView = (ListView) dialog.findViewById(R.id.listView1);
  19. textView = (TextView) dialog.findViewById(R.id.textView2);
  20. editText = (EditText) dialog.findViewById(R.id.editText1);
  21. buttonCancel = (Button) dialog.findViewById(R.id.button1);
  22. buttonAction = (Button) dialog.findViewById(R.id.button2);
  23. update(context, listView, path, false);
  24. listView.setOnItemClickListener(new OnItemClickListener() {
  25.  
  26. @Override
  27. public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
  28.  
  29. // Hier wird der Variable der Wert zugewiesen
  30.  
  31. fileName = listView.getAdapter().getItem(position).toString();
  32.  
  33. if((fileName.charAt(fileName.length()-1) == '/')||(fileName.equals(".."))) {
  34. path += fileName;
  35. update(context, listView, path, false);
  36. if(fileName.equals("..")) {
  37. path = path.substring(0,path.length()-fileName.length());
  38. path = correctPath(path);
  39. update(context, listView, path, false);
  40. }
  41. textView.setText("/" + getPath(path));
  42. } else {
  43.  
  44. // Hier enthält die Varable den zugewiesenen Wert
  45.  
  46. editText.setText(fileName);
  47.  
  48. }
  49. }
  50. });
  51.  
  52. listView.setOnItemLongClickListener(new OnItemLongClickListener() {
  53.  
  54. public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int pos, long id) {
  55.  
  56. fileName = listView.getAdapter().getItem(pos).toString();
  57. AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);
  58. alertDialogBuilder.setMessage(getFolderName(path, fileName) +" "+ text);
  59. alertDialogBuilder.setPositiveButton(R.string.button_delete, new DialogInterface.OnClickListener() {
  60. public void onClick(DialogInterface dialog, int id) {
  61. file = new File(path+fileName);
  62. delete(file);
  63. update(context, listView, path, false);
  64. }
  65. });
  66. alertDialogBuilder.setNegativeButton(R.string.button_cancel, new DialogInterface.OnClickListener() {
  67. public void onClick(DialogInterface dialog, int id) {
  68. // KEINE AKTION
  69. }
  70. });
  71. AlertDialog alertDialog = alertDialogBuilder.create();
  72. alertDialog.show();
  73. return true;
  74. }
  75. });
  76.  
  77. buttonCancel.setOnClickListener(new OnClickListener() {
  78. @Override
  79. public void onClick(View v) {
  80. dialog.dismiss();
  81. }
  82. });
  83.  
  84. buttonAction.setOnClickListener(new OnClickListener() {
  85. @Override
  86. public void onClick(View v) {
  87. if(!editText.getText().toString().isEmpty()) {
  88. arrayList = read(path + fileName);
  89. listAdapter = new ArrayAdapter<String>(context, android.R.layout.simple_list_item_1, arrayList);
  90. list.setAdapter(listAdapter);
  91. dialog.dismiss();
  92. }
  93. }
  94. });
  95.  
  96. editText.setOnEditorActionListener(new EditText.OnEditorActionListener() {
  97. @Override
  98. public boolean onEditorAction(final TextView v, final int actionId, final KeyEvent event) {
  99. boolean handled=false;
  100. if(EditorInfo.IME_ACTION_DONE==actionId) {
  101. handled=true;
  102. if(!editText.getText().toString().isEmpty()) {
  103. arrayList = read(path + fileName);
  104. listAdapter = new ArrayAdapter<String>(context, android.R.layout.simple_list_item_1, arrayList);
  105. list.setAdapter(listAdapter);
  106. dialog.dismiss();
  107. }
  108. }
  109. return handled;
  110. }
  111. });
  112.  
  113. dialog.getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT);
  114. dialog.show();
  115. // Hier enthält die Variable nicht mehr den zugewiesenen Wert aus der Listener Methode
  116.  
  117. return path + fileName;
  118.  
  119. }
  120. }



Variablen Variable behält nicht den zugewiesenen Wert

0 commentaires:

Enregistrer un commentaire