0

请看下面的代码

表单.java

我的主要活动是 Form.java。在里面,我有一个AlertDialog. 当用户单击“是”按钮时,将调用以下类

private class PositiveDialogBtnAction implements DialogInterface.OnClickListener
    {

        public PositiveDialogBtnAction()
        {
        }  
        @Override
        public void onClick(DialogInterface arg0, int arg1) {
            // TODO Auto-generated method stub
            //Toast.makeText(getApplicationContext(), databaseConnector.getStreetAddress(selectedBranch), Toast.LENGTH_LONG).show();

            Dialog dialog = new Dialog(context);
            dialog.setContentView(R.layout.activity_call_dialog);
            dialog.setTitle("Select a Phone Number");

            dialog.show();
        }

    }

以下是 XML 文件和 Java 类,它被设置为上面提到的Dialog内部PositiveDialogBtnAction类。

activity_call_dialog

<TextView
    android:id="@+id/callNumber1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:text="" />

<TextView
    android:id="@+id/callNumber2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:text="" />

CallDialog.java

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;
import android.widget.Toast;

public class CallDialog extends Activity {

    private DatabaseConnector database = DatabaseHandler.getInstance();
    private TextView ph1,ph2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_call_dialog);

        Toast.makeText(this, "Activity Running", Toast.LENGTH_LONG).show();
        //String selectedBranch = Form.selectedBranch;

        //ph1 = (TextView)findViewById(R.id.callNumber1);
        //ph2 = (TextView)findViewById(R.id.callNumber2);

        //ph1.setText(database.getPhoneNumber1(selectedBranch));
        //ph2.setText(database.getPhoneNumber2(selectedBranch));

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_call_dialog, menu);
        return true;
    }


}

但是,当PositiveDialogBtnAction被解雇时,Toast中提到的CallDialog.java永远不会被解雇。似乎它没有处理CallDIalog.java.因此,我也无法将值设置为activity_call_dialog.xml中的文本字段。我已经注释掉了这些行。

为什么没有调用与此活动捆绑的这个 Java 文件?请帮忙!

4

1 回答 1

0

要创建警报对话框,您应该使用 AlertDialog.Builder。它有一个漂亮流畅的界面,让处理对话变得非常容易。例子:

new AlertDialog.Builder(this)
    .setMessage("Someone is calling you")
    .setPositiveButton("Positive", 
            new OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    startActivity(new Intent("com.example.CallDialogActivity"));
            }})
    .create()
    .show();

为了从点击监听器内部开始一个新的活动,只需startActivity()使用在AndroidManifest.xml为您注册的 CallDialog 中注册的操作进行调用(我建议您将其重命名为CallDialogActivity)。但无论如何,您应该确定在哪里使用对话框或活动。必须相应地处理它们。

于 2013-02-15T22:27:37.350 回答