Android按钮Onclick

yxyvkwin  于 2022-12-21  发布在  Android
关注(0)|答案(9)|浏览(144)

我在单击方法上遇到问题。我希望我的按钮在手机上单击时将布局视图从main.xml切换到xx.xml

package my.project;

import android.app.Activity;
import android.os.Bundle;

import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class ExperiencerlActivity extends Activity {
    /** Called when the activ`enter code here`ity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);      
        Button button = (Button) findViewById(R.id.button1);

        button.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                // TODO Auto-generated method stub
            }
        });
    }
}

下面是我的按钮代码

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/linearLayout1"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="56dp"
    android:onClick="setLogin"
    android:text="Login" />
7kqas0il

7kqas0il1#

方法一:

public void onClick(View v) {
          Intent i = new Intent(currentActivity.this, SecondActivity.class);
         startActivty(i);
        }

方法二:

Button button = (Button) findViewById(R.id.mybutton);
 button.setOnClickListener(new OnClickListener() {

    public void onClick(View v) {
         Toast.makeText(this, "Button Clicked", Toast.LENGTH_LONG).show();

    }
 });
bhmjp9jg

bhmjp9jg2#

有两种解决方案:

**(1)**不要在xml中放置onClick
**(2)**移除

button.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
            // TODO Auto-generated method stub
    }
});

并把

public void setLogin(View v) {
    // Your code here
}
bgtovc5b

bgtovc5b3#

可以这样说:

public void onClick(View v) {
            // TODO Auto-generated method stub
           startActivity(new Intent("com.droidnova.android.splashscreen.MyApp"));
        }
vzgqcmou

vzgqcmou4#

下面是一些示例代码,说明如何添加一个名为Add的按钮。您应该将变量声明为成员变量,成员变量的命名约定是以字母“m”开头。
在类上按Alt+Enter添加缺少的引用。
将以下内容添加到您的activity_main.xml:

<Button
        android:id="@+id/buttonAdd"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="ADD"
     />

将其添加到您的MainActivity.java:

public class MainActivity extends AppCompatActivity {

    Button mButtonAdd; 

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mButtonAdd = findViewById(R.id.buttonAdd);

        mButtonAdd.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // do something here
            }
        });
    }
}
zy1mlcev

zy1mlcev5#

了解按钮按下时要执行的代码会很有帮助。您已经在xml文件中将onClick属性设置为一个名为setLogin的方法。为了清楚起见,我将删除android:onClick="setLogin"这一行,并直接从onClick()方法内部调用该方法。
此外,您不能仅将显示设置为新的XML,您需要使用Intent启动新Activity,类似于以下内容的方法将是合适的

private void setLogin() {

 Intent i = new Intent(currentActivity.this, newActivity.class);
 startActivty(i);

 }

然后将新“活动”设置为具有新布局。

ma8fv8wu

ma8fv8wu6#

这将为您分类

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

    Button but1=(Button)findViewById(R.id.button1);

    but1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Intent int1= new Intent(MainActivity.this,xxactivity.class);
            startActivity(int1);
        }
    });
}

您只需将xxactivity修改为第二个活动的名称

h22fl7wq

h22fl7wq7#

使用布局充气机方法在您的按钮点击。它会改变您当前的。xml到目标。xml文件。谷歌布局充气机代码。

5cnsuln7

5cnsuln78#

如果您在xml文件中的Button标签中这样编写:**android:onClick=“设置登录”**然后
这样做:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<Button
    android:id="@+id/button1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/btn"
    android:onClick="onClickBtn" />

</LinearLayout>

在代码部分:

public class StartUpActivity extends Activity 
{
    public void onCreate(Bundle savedInstanceState) 
    {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);    
    }

    public void onClickBtn(View v)
    {
        Toast.makeText(this, "Clicked on Button", Toast.LENGTH_LONG).show();
    } 
}

也不需要这些

Button button = (Button) findViewById(R.id.button1);
 button.setOnClickListener(new OnClickListener() {

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

    }
 });

检查一次;

kkih6yb8

kkih6yb89#

您需要在布局XML和Java代码中使用相同的方法名both
如果使用android:onClick="setLogin",则需要创建一个同名的方法setLogin

// Please be noted that you need to add the "View v" parameter
public void setLogin(View v) {

}

建议:

不要在XML中使用android:onClick标记来混合布局和代码。相反,使用OnClickListener方法将click方法移动到类中,如下所示:

Button button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener() {
  public void onClick(View v) {
    // TODO Auto-generated method stub
  }
 });

只为布局而做布局,当你需要重构Supporting Multiple Screens的时候,它会保存你宝贵的时间。

相关问题