我有两种不同的布局。一个是在Activity启动时加载,另一个是在运行一些检查后加载并创建自定义对话框。对话框中有一个按钮用于触发,此时,onclick有一个Toast消息,因此我可以确认该按钮已被点击。不幸的是,单击按钮时我无法得到任何响应。我一直在网上,我无法找到我所缺少的东西。
public class myactivity extends Activity{
Dialog accesspopup;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_myactivity);
View inflatedView = getLayoutInflater().inflate(R.layout.dialoglayout, null);
final Button cabtn = (Button)inflatedView.findViewById(R.id.cb);
cabtn.setOnClickListener(cListener);
}
private OnClickListener cListener = new OnClickListener() {
public void onClick(View v) {
//Log.d("HiThereActivity", "THIS IS DEBUG OUTPUT TO LOGCAT");
Toast.makeText(myactivity.this, "The Start button was clicked.", Toast.LENGTH_LONG).show();
}
};
public void showPopup(){
accesspopup = new Dialog(myactivity.this);
accesspopup.setContentView(R.layout.pop_window);
accesspopup.setCancelable(false);
accesspopup.setTitle("Window Title");
accesspopup.show();
}
答案 0 :(得分:1)
我做了一些搜索,发现我需要在方法中创建OnClickListener,我用它来构建和显示Dialog而不是OnCreate。
答案 1 :(得分:0)
您的 R.layout.activity_myactivity 可能仍然是您活动中可控制的Contentview。
因此,您必须将新布局定义为setContentView.
或者您提到它是Dialog
框。
因此,您可以为对话框添加内容视图,如下所示
Dialog d = new Dialog (this);
d.setContentView(your inflated view);
答案 2 :(得分:0)
用这种方式......
public class myactivity extends Activity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_myactivity);
View inflatedView = getLayoutInflater().inflate(R.layout.dialoglayout, null);
final Button cabtn = (Button)inflatedView.findViewById(R.id.cb);
cabtn.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
Toast.makeText(myactivity.this, "The Start button was clicked.", Toast.LENGTH_LONG).show();
}
});
}