2012-04-04 62 views
0

我遇到问题。 在我的活动中我有一个按钮,当我点击它时,我调用一个方法。这个方法向我展示了一个带有listview的警告对话框,并且我想将该项目单击保存到一个变量中,然后我想关闭该方法但它不关闭! 为什么? 我发布了该方法的代码。 我的logcat不会给我任何错误。 任何人都可以帮助我吗?请方法不关闭

private void getValuta() { 

    // AlertDialog creation 
    AlertDialog.Builder miaAlert = new AlertDialog.Builder(this); 

    final ListView lV = new ListView(this); 

    Cursor c = null; 


    // Set the title of the dialogBox 
    miaAlert.setTitle("Choose Valuta"); 

    // I call the Query 
    c = vdb.fetchValuteListView("0"); 

    // handle of the cursor 
    startManagingCursor(c); 

    // I create the SimpleCursorAdapter 
    SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, // Context 
      android.R.layout.simple_list_item_1, // row/product layout 
      c, // the cursor 
      new String[] { 
        ValuteDb.ValuteMetaData.VALUTE_NAME_KEY}, 
                     // the colums 
      new int[] { android.R.id.text1});// views 

    stopManagingCursor(c); 

    // The listView is filled using the adapter created above 
    lV.setAdapter(adapter); 

    miaAlert.setView(lV); 

    miaAlert.setCancelable(false); 

    // list view listener 
    lV.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View v, 
       int position, long id) { 

      String riga = String.valueOf(id); 
      String confr = vdb.getRecord(riga,2); 
      System.out.println("position= " + position + "/id= " + id+"/nome= "+confr); 
      new_valuta = vdb.getRecord(riga,2); 
      listdb.update("9", "Valuta", new_valuta, "2"); 
      c_list.requery(); 

      return; 

     } 
    }); 

    // I create the AlertDialog 
    AlertDialog alert = miaAlert.create(); 

    // I showw the AlertDialog 
    alert.show(); 
+0

您可能希望你的翻译注释,字符串和方法成英文,以获得更好/更答案。 – 2012-04-04 12:56:16

回答

0

试试这个:

private void getValuta() { 

    // Creo l'alert Dialog 
    AlertDialog.Builder miaAlert = new AlertDialog.Builder(this); 

    final ListView lV = new ListView(this); 

    Cursor c = null; 


    // Setto il titolo del mio alert 
    miaAlert.setTitle("Choose Valuta"); 

    // Chiamo la Query che in questo caso è un all 
    c = vdb.fetchValuteListView("0"); 

    // Comincio a fare il management del cursore 
    startManagingCursor(c); 

    // Semplice cursor adapter 
    SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, // Contesto 
      android.R.layout.simple_list_item_1, // il layout di ogni riga/prodotto 
      c, // Il cursore 
      new String[] { 
        ValuteDb.ValuteMetaData.VALUTE_NAME_KEY},// questi 
                     // colonne 
      new int[] { android.R.id.text1});// in 
                    // queste 
                    // views 

    stopManagingCursor(c); 

    // Ora la list view si prende questo adapter appena creato sopra 
    lV.setAdapter(adapter); 

    miaAlert.setView(lV); 

    miaAlert.setCancelable(false); 

    // Listener della list view 
    lV.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View v, 
       int position, long id) { 


      AlertDialog alert = miaAlert.create(); 
      alert.show(); 

      String riga = String.valueOf(id); 
      String confr = vdb.getRecord(riga,2); 
      System.out.println("position= " + position + "/id= " + id+"/nome= "+confr); 
      new_valuta = vdb.getRecord(riga,2); 
      listdb.update("9", "Valuta", new_valuta, "2"); 
      c_list.requery(); 

      alert.dismiss(); 

      return; 

     } 
    });