当前位置: 首页 > 面试题库 >

Android开发将XML按钮链接到Java

边霄
2023-03-14
问题内容

我是android开发的新手,我基本上是在尝试创建一个非常基本的应用程序,该应用程序将使用户能够打开其wifi。

我的XML文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="16dp"
    android:gravity="top"
    android:text="@string/welcome"
    android:textSize="25sp" />

<Button
    android:id="@+id/wifi_on"
    android:layout_width="150dp"
    android:layout_height="60dp"
    android:layout_below="@+id/textView1"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="112dp"
    android:text="@string/wifi_button" />

`

我的Java文件:

package com.example.dosomething;

import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button;

public class MainActivity extends Activity implements OnClickListener {

protected Button wifi_on;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub


}

public Button getWifiOn(){


    return wifi_on;

}


public void setWifiOn(Button on){

    wifi_on = on;


}

}`

我的问题是如何将XML文件中的按钮引用到java文件上,以进一步告诉它,如果单击该按钮,则应打开wifi。谢谢。


问题答案:

有几种方法可以做到这一点。

  1. 您可以做的就是将此行添加<Buttonxml中的标签中

android:onClick="setWifiOn"

然后将该函数的参数更改为

public void getWifiOn(View v){


return wifi_on;

}

这样,您就不需要onClick或任何听众

2.如果您想让所有人Buttons共享相同的功能,然后给他们所有的功能名称,例如

android:onClick="someFunction"

然后在Java中执行类似

public void someFunction(View v)
{
    Button btn = (Button)v;  
    switch (v.getId())
    {
       case (R.id.wifi_on:
        setWifiOn(btn);
        break;
       case (R.id.differentBtnId):
       // do some other things
       break;
     }
}

}

3.恕我直言,在很多情况下吸引力都较小

    public class MainActivity extends Activity implements OnClickListener {
    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Button wifiBtn = (Button) findViewById(R.id.wifi_on);
    wifiBtn.setOnClickListener(this);  // your onClick below will be called then you will still have to check the id of the Button
    // multiple buttons can set the same listener and use a switch like above

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub

}

笔记 编号3是您唯一需要的一个implements OnClickListener

按钮文档

我省略了另一种方式,因为如果您有多个,我认为这是最丑的 Button



 类似资料:
  • 在任何浏览器下,默认的链接都太过平淡,不能满足大多数人的需求。尤其是希望有特大点击区域的链接,比如制作主导航链接、手风琴菜单、按钮等链接时,默认的链接更是无能为力,而按钮式链接便可担此重任。 链接默认是行内元素,只能通过链接文本来激活链接。要想让链接像按钮一样,较大的点击区域,其实很简单。只需为链接添加合适的内边距,并设置类似按钮的背景和边框即可。 a  {     padding: 10px

  • 我有以下问题: 到此: 使用:

  • pre { white-space: pre-wrap; } 通常情况下,使用 <button> 元素来创建按钮,而链接按钮(Link Button)则是使用 <a> 元素来创建的。所以实际上一个链接按钮(Link Button)就是一个显示为按钮样式的 <a> 元素。 为了创建链接按钮(Link Button),所有您需要做的就是添加一个名为 'easyui-linkbutton' 的 clas

  • 问题内容: 我如何在默认浏览器中单击按钮以打开以下链接: button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { open("www.google.com”); // just what is the ‘open’ method? } }); ? 问题答案: 使用方法。

  • pre { white-space: pre-wrap; } jQuery EasyUI 插件 通过 $.fn.linkbutton.defaults 重写默认的 defaults。 链接按钮(linkbutton)用于创建一个超链接按钮。它是一个正常的 <a> 标记的表示。它可显示图标和文本,或者仅仅显示图标和文本中的一个。按钮宽度可动态收缩/扩展以适应其文本标签。 用法 创建链接按钮(link