java - 我怎样才能把警告对话框放在循环中,特别是在 for 循环 Android 中

标签 java android

我想为不同的联系人添加不同的对话框..!!我想在下面的 for 循环中创建,这是我的代码 ..!!

public class CallActivity extends Activity{

    sqlAdapter adapter;
    Context mContext; 
    String Birthdate, CurrentDate, ctName = "Unknown", phNumber = "Unknown";

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

        Calendar cal = Calendar.getInstance();
        int date = cal.get(Calendar.DAY_OF_MONTH);
        int month = cal.get(Calendar.MONTH)+1;

/* 获取当前日期 */

    if(date<10 && month<10){
        CurrentDate = "0"+month+"-0"+date;
        Toast.makeText(getBaseContext(), "CurrentDate : " + CurrentDate, Toast.LENGTH_LONG).show(); 
        }else if(month<10 && date>10){
            CurrentDate = "0"+month+"-"+date;
            Toast.makeText(getBaseContext(), "CurrentDate : " + CurrentDate, Toast.LENGTH_LONG).show(); 
        }else if(month>9 && date<10){
            CurrentDate = month+"-0"+date;
            Toast.makeText(getBaseContext(), "CurrentDate : " + CurrentDate, Toast.LENGTH_LONG).show(); 
        }else {
            CurrentDate = month+"-"+date;
            Toast.makeText(getBaseContext(), "CurrentDate : " + CurrentDate, Toast.LENGTH_LONG).show(); 
        }

    adapter = new sqlAdapter(getBaseContext());
    adapter.openToRead();
    ArrayList<ContactDetails> cDetails = adapter.getContactDetails(CurrentDate);
    adapter.close();

/* 这是 for 循环,我想为不同的联系人生成警报对话框 */

    for (int i = 0; i < cDetails.size(); i++) {
        ctName = cDetails.get(i).Name;
        adapter.openToRead();
        phNumber = adapter.getcNumber(ctName);
        adapter.close();
        alertforcall(getBaseContext(),ctName,phNumber);
    }   
}

public void alertforcall(Context context, String Name, final String ctNumber){
    mContext = context;

    AlertDialog alert = new AlertDialog.Builder(CallActivity.this).create();
    alert.setIcon(R.drawable.ic_launcher);
    alert.setTitle("");
    alert.setMessage("Are you sure want to call " + Name +"? " );

    alert.setButton("No", new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            dialog.dismiss();
            finish();

        }
    });

    alert.setButton2("Yes", new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            String phoneNumber = "tel:" + ctNumber;
            Intent intent = new Intent(Intent.ACTION_CALL, Uri
                    .parse(phoneNumber));
            startActivity(intent);
            finish();           
        }
    });
    alert.show();
}

最佳答案

不良做法,在for-loop 中创建对话框不是良好的编程习惯。

只需将 ArrayList of Contact 传递给 alertforcall() 方法,当您想在条件基础上显示对话框时,在该 中设置姓名和联系人>AlertDialog..

例如,

现在,当您想要显示特定联系人的警报对话框时,我假设您正在单击联系人列表,因此通过获取特定列表项的名称和号码并将其传递给 alertforcall() 方法您可以显示特定的警报对话框。

关于java - 我怎样才能把警告对话框放在循环中,特别是在 for 循环 Android 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14133830/

相关文章:

java - 如何一般比较整个 java bean?

java - Java中用于保存存储桶列表ID的默认结构

Android - 使用 Singleton 访问保留应用程序设置和 Context

java - Android应用程序: Error: Android.数据库。CursorIndexOutOfBoundsException : Index 0 requested,,大小为0

java - 将TestNG与IDEA和Gradle结合使用时,无法识别TestNG库和测试源,从而导致无法运行测试

java - 有谁知道如何实现类似于Google App Engine 的白名单类访问方法?

java - 如何更改 Java AWT 和/或 Swing 中的光标图像?

传入 TextView 的 Android 测试 AsyncTask

Android 从 ListView 中获取数据

android - 无法在android中以编程方式在 ScrollView 中添加线性布局