相关疑难解决方法(0)

如何使用片段中的XML onClick处理按钮单击

Pre-Honeycomb(Android 3),每个Activity都已注册,可通过onClickLayout的XML中的标签处理按钮点击:

android:onClick="myClickMethod"
Run Code Online (Sandbox Code Playgroud)

在该方法中,您可以使用view.getId()和switch语句来执行按钮逻辑.

随着Honeycomb的推出,我将这些活动分解为碎片,可以在许多不同的活动中重复使用.按钮的大部分行为都是与Activity无关的,我希望代码驻留在Fragments文件中,而不使用OnClickListener为每个按钮注册的旧(pre 1.6)方法.

final Button button = (Button) findViewById(R.id.button_id);
button.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        // Perform action on click
    }
});
Run Code Online (Sandbox Code Playgroud)

问题是,当我的布局被夸大时,它仍然是接收按钮点击的托管活动,而不是单个碎片.对两者都有好的方法

  • 注册片段以接收按钮点击?
  • 将Click中的click事件传递给它们所属的片段?

xml android button android-fragments

425
推荐指数
8
解决办法
24万
查看次数

android:onClick XML属性与setOnClickListener有何不同?

从我读过,您可以通过onClick两种方式为按钮分配处理程序.

使用android:onClickXML属性,您只需使用带有签名的公共方法的名称,void name(View v)或使用setOnClickListener传递实现OnClickListener接口的对象的方法.后者通常需要一个我个人不喜欢的匿名课程(个人品味)或者定义实现该课程的内部课程OnClickListener.

通过使用XML属性,您只需要定义一个方法而不是一个类,所以我想知道是否可以通过代码而不是XML布局来完成相同的操作.

android onclick

400
推荐指数
10
解决办法
37万
查看次数

OnClick()事件和OnClickListener之间的区别?

我总是onclick()在大多数项目中使用事件.但是,我读到了OnClickListener().谁能说出这两者之间有什么区别?哪一个最适合在Android应用程序中使用?

android onclick

21
推荐指数
5
解决办法
2万
查看次数

片段内的复选框 - 捕获选中/取消选中

我试图在 Fragment 类中接收复选框选择,但是我无法使用在 Activity 中使用的方式(android:onClick="onCheckboxClicked"从 a 调用方法layout.xml),因为每次使用此方法时我都会收到“method onCheckboxClicked not found”叫。

public void onCheckboxClicked(View view) {
    // Is the view now checked?
    boolean checked = ((CheckBox) view).isChecked();

    // Check which checkbox was clicked
    switch(view.getId()) {
        case (R.id.checkBox_wifi):
            if (checked)    {
                editor.putBoolean("wifi_on_off", true);
            }
            else    {
                editor.putBoolean("wifi_on_off", false);
            }
            break;

    }

    editor.apply();
}
Run Code Online (Sandbox Code Playgroud)

所以,我已经实现了 View.OnClickListener,但这没有得到任何复选框检查/取消选中:

 @Override
public void onClick(View view) {
    switch (view.getId()) {
        case R.id.checkBox_wifi:
            boolean checked = ((CheckBox) view).isChecked();

            if (checked) {
                editor.putBoolean("wifi_on_off", true);
            } else …
Run Code Online (Sandbox Code Playgroud)

checkbox android android-fragments

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

android ×4

android-fragments ×2

onclick ×2

button ×1

checkbox ×1

xml ×1