有没有其他方法可以通过使用监听器来点击按钮上的方法?

时间:2015-05-01 11:19:39

标签: java android

我刚刚看到一个对我来说没有意义的android示例代码。声明了一个按钮,实例化,但没有监听器。即使在单击按钮时调用了一个方法。

我在想,如果它被自动调用,因为该方法与按钮具有相同的名称,只需使用小写的第一个字母。这是一个Android功能,我不知道吗?我试过,我不知道如何寻找答案,所以它可能是重复的。

CODE:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    On = (Button)findViewById(R.id.button1);
    Off = (Button)findViewById(R.id.button2);
    Visible = (Button)findViewById(R.id.button3);
    list = (Button)findViewById(R.id.button4);

    lv = (ListView)findViewById(R.id.listView1);

    BA = BluetoothAdapter.getDefaultAdapter();
}

public void on(View view){
    if (!BA.isEnabled()) {
        Intent turnOn = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
        startActivityForResult(turnOn, 0);
        Toast.makeText(getApplicationContext(),"Turned on"
                ,Toast.LENGTH_LONG).show();
    }
    else{
        Toast.makeText(getApplicationContext(),"Already on",
                Toast.LENGTH_LONG).show();
    }
}
public void list(View view){
    pairedDevices = BA.getBondedDevices();

    ArrayList list = new ArrayList();
    for(BluetoothDevice bt : pairedDevices)
        list.add(bt.getName());

    Toast.makeText(getApplicationContext(),"Showing Paired Devices",
            Toast.LENGTH_SHORT).show();
    final ArrayAdapter adapter = new ArrayAdapter
            (this,android.R.layout.simple_list_item_1, list);
    lv.setAdapter(adapter);

}

3 个答案:

答案 0 :(得分:3)

还可以通过xml设置侦听器,并具有onClick属性。

答案 1 :(得分:2)

您可以在xml中声明它,如:

 android:onClick = "show"

在您的活动中使用如下:

public void show(View v){
//handle click here
}

答案 2 :(得分:0)

检查android:onClick在android按钮xml中声明了什么方法名称,当点击按钮时会调用它,在这种情况下不需要将监听器附加到按钮