2014-02-14 67 views
1

我曾问过几天前的问题,但没有任何人回复..帮助我的家伙plz ... 我有一个按钮,点击后,将显示一个alertdialog ....在alertDialog我设置prompview有两个editTexts和一个保存按钮...点击保存按钮后,信息应该保存在列表视图中(例如名称和电子邮件)...所以我想通过单击保存按钮保存更多的记录...对于例如用户输入名称和电子邮件,当用户输入保存按钮时,记录应该保存为一个项目在列表视图...所以用户可以保存多个记录后点击保存按钮在alertDialog ..我很新的android .. 。我已经搜索,但不明白... plz帮助我...我不知道如何做到这一点...从alertDialog填充listView

这是我的代码:

public class Personal_Info extends ListActivity { 
     final Context context = this; 
     Button btnAddEmail; 
     EditText etEmailName,etEmailAddress; 


     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      // TODO Auto-generated method stub 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.personal_info); 

      btnAddEmail =(Button)findViewById(R.id.btnAddEmail); 


      btnAddEmail.setOnClickListener(new View.OnClickListener() { 

       @Override 
       public void onClick(View arg0) { 
        // TODO Auto-generated method stub 


        LayoutInflater li = LayoutInflater.from(context); 
        View promptsView = li.inflate(R.layout.add_email, null); 
        AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
          context); 

        // set prompts.xml to alertdialog builder 
        alertDialogBuilder.setView(promptsView); 
        etEmailName =(EditText)promptsView.findViewById(R.id.etEmailName); 
        etEmailAddress =(EditText)promptsView.findViewById(R.id.etEmailAddress); 


        alertDialogBuilder 
        .setCancelable(false) 
        .setPositiveButton("OK", 
         new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog,int id) { 
         String emailname = etEmailName.getText().toString(); 
         String emailadd = etEmailAddress.getText().toString(); 

         if(emailname.equals("") || emailadd.equals("")){ 
          Toast.makeText(Personal_Info.this, "enter name and email address", Toast.LENGTH_SHORT).show(); 
         }else{ 
          final String[] email =new String[]{emailname,emailadd}; 
          setListAdapter(new ArrayAdapter<String>(getApplicationContext(), R.layout.row_item,email)); 
          ListView list = getListView(); 
          list.setTextFilterEnabled(true); 

          list.setOnItemClickListener(new OnItemClickListener() { 

           @Override 
           public void onItemClick(AdapterView<?> arg0, 
             View arg1, int arg2, long arg3) { 
            // TODO Auto-generated method stub 

            Toast.makeText(getApplicationContext(), ((TextView)arg1).getText(), Toast.LENGTH_SHORT).show(); 

            } 
           }); 
          } 
         } 
         }) 
        .setNegativeButton("Cancel", 
         new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog,int id) { 
         dialog.cancel(); 
         } 
         }); 

       // create alert dialog 
       AlertDialog alertDialog = alertDialogBuilder.create(); 

       // show it 
       alertDialog.show(); 
       } 
      }); 
     } 
    } 
+1

请你解释一下,我没有收到你的问题。不要担心,你会得到帮助 – Developer

+0

我想从alertdialog中动态获取数据到listview。我有一个按钮,点击一个alertdialog显示..在alertDialog有两个editText一个名称和其他电子邮件...所以我想,当用户点击保存按钮在alertdialog ..所以我想从alertdialog editTexts填充列表视图.. @Gaurav Pandey – user3302944

+0

可以üPLZ给你的电子邮件ID ??我想给你发邮件@ \t Gaurav Pandey – user3302944

回答

0

好像你永远不会添加任何项目到您的列表。

调整这样的代码:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.row_item,email); 
adapter.add(email); 
setListAdapter(adapter); 

有用吗?

+0

它没有工作... – user3302944

+0

我明白了。您不应该在onclick方法中创建适配器的新实例。在oncreate方法中创建和设置适配器,并在onclick中调用适配器上的.add(email) – donfuxx

+0

仍然会给出相同的错误 – user3302944