【发布时间】:2013-02-15 08:38:15
【问题描述】:
请看下面的代码
Form.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 类,该类被设置为上述 PositiveDialogBtnAction 类中的 Dialog。
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 被解雇时,CallDialog.java 中提到的Toast 永远不会被解雇。似乎它没有处理 CallDIalog.java. 因此,我也无法将值设置为 activity_call_dialog.xml 中的文本字段。我已经注释掉了这些行。
为什么没有调用与此活动捆绑的这个 Java 文件?请帮忙!
【问题讨论】:
-
你能清理一下你的代码吗?真的很吵,很难看到发生了什么。例如。你提到了 Call.java 但这并没有在任何地方显示。另外,删除不必要的注释行......也许创建一个 Gist 并在此处仅保留相关代码会是一个更好的解决方案。
-
@allprog:我提到了 CallDialog.java,那是一个错字。对不起。我改正了
-
CallDialog应该是Activity还是Dialog?如果你希望它是一个对话框,它不应该扩展Activity。此外,您永远不会实例化它。您只需创建一个新的Dialog,而不是一个新的CallDialog。如果它应该是Activity,则需要以Intent开头,而不是创建对话框并显示它。 -
你能给我看看你的
Form.java类吗,你可以比这更容易处理正面和负面的点击,请编辑你的问题,你的类不清楚
标签: java android eclipse android-activity android-dialog