gpt4 book ai didi

android-layout - 按钮 OnClickListener 不起作用

转载 作者:行者123 更新时间:2023-12-01 06:53:34 24 4
gpt4 key购买 nike

我有一个按钮,当我点击一个对话框出现。问题是,setOnClickListener没有响应我的按钮。

这是我的Java代码:

Button b1 = (Button) findViewById(R.id.button1);
b1.setOnClickListener(usage);

b2 = (Button) findViewById(R.id.button2);
b2.setOnClickListener(price);

b3 = (Button) findViewById(R.id.button3);
b3.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
System.out.println("Button3");
mainDialog3 = new Dialog(Advice.this);
mainDialog3.setContentView(R.layout.fuel);
mainDialog3.setCancelable(true);

mainDialog3.show();
Window window = mainDialog3.getWindow();
window.setLayout(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT);

}
});


private View.OnClickListener usage = new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
System.out.println("Button1");
Toast.makeText(getApplicationContext(), "Button 1",
Toast.LENGTH_LONG).show();
mainDialog1 = new Dialog(Advice.this);
mainDialog1.setContentView(R.layout.usage);
mainDialog1.setCancelable(true);

mainDialog1.show();
Window window = mainDialog1.getWindow();
window.setLayout(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT);

}
};

private View.OnClickListener price = new View.OnClickListener() {
public void onClick(View v) {
System.out.println("Button2");
mainDialog2 = new Dialog(Advice.this);
mainDialog2.setContentView(R.layout.price);
mainDialog2.setCancelable(true);

mainDialog2.show();
Window window = mainDialog2.getWindow();
window.setLayout(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT);

}

};

问题在于按钮 1 ( b1 )。其余按钮( b2b3 )工作得很好。这是我的 XML:
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignRight="@+id/button7"
android:text="Edit" />

<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/button3"
android:layout_alignLeft="@+id/button1"
android:text="Edit" />

<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/textView8"
android:layout_alignLeft="@+id/button2"
android:text="Edit" />

最佳答案

您无需在代码中手动设置点击监听器。最简单的方法是在 XML 中添加回调。

像这样:

<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignRight="@+id/button7"
android:onClick="foo"
android:text="Edit" />

如果您将 eclipse 与 android 工具一起使用,则可以直接在 XML 编辑器中设置此属性。然后在以 Click 属性命名的代码中定义一个函数,它将被自动调用。
public void foo(View oView)
{
Button cklicked ...
}

您还可以动态设置点击监听器,但这仅当您像这样动态创建按钮时才需要:
    ImageButton button = (ImageButton) findViewById(R.id.list_manager_add);
button.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
button pressed...
}
});

关于android-layout - 按钮 OnClickListener 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17335135/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com