繁体   English   中英

在Android模拟器上,我的按钮没有点击

[英]On Android emulator my button is not clicking

我最近开始编程并面对这个问题。 我的按钮没有在模拟器中单击,但是我用Java编写了onClickListener。 它仍然不起作用。

这是我的xml代码:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">

<Button
android:id="@+id/btn1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/SD"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="70dp"
android:background="@color/blue_gray"
android:visibility="visible"
android:onClick="onClick"/>
<Button
    android:id="@+id/btn2"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/SD2"
    android:layout_marginLeft="20dp"
    android:layout_marginRight="20dp"
    android:layout_marginTop="70dp"
    android:background="@color/follow"
    android:visibility="gone"
    android:onClick="onClick"/>
</FrameLayout>

这是我的Java代码:

enter code here包com中enter code here

           import android.app.Activity;
           import android.os.Bundle;
           import android.view.View;
           import android.widget.Button;
           import android.widget.ListView;
           import android.widget.TextView;
           import com.example.app.R;

           /**
           * Created by ww on 12.02.14.
           */



           public class fragment_main extends Activity  {

           Button i1;
           Button i2;


            protected void onCreate (Bundle SavedInstanceState){
            super.onCreate(SavedInstanceState);
            setContentView(R.layout.fragment_main);

             i1= (Button) findViewById(R.id.btn1);
             i2=(Button) findViewById(R.id.btn2);



             }




             public void onClick(View view) {
             switch (view.getId()) {
             case R.id.btn1:
             i1.setVisibility(View.GONE);
             i2.setVisibility(View.VISIBLE);
             break;
             case R.id.btn2:
             i1.setVisibility(View.VISIBLE);
             i2.setVisibility(View.GONE);

             break;
              }
              }
              }

您必须为按钮注册一个监听器,例如:

i1 = (Button) findViewById(R.id.btn1);
i2 = (Button) findViewById(R.id.btn2);
//inside onCreate do this:
i1.setOnClickListener(myhandler1);
i2.setOnClickListener(myhandler2);

然后,您必须创建那些侦听器。

// somewhere outside onCreate do this:
View.OnClickListener myhandler1 = new View.OnClickListener() {
public void onClick(View v) {
  // it was the 1st button
}
};
View.OnClickListener myhandler2 = new View.OnClickListener() {
public void onClick(View v) {
  // it was the 2nd button
}
};

这是工作代码,

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">

<Button
android:id="@+id/btn1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/sd"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="70dp"
android:onClick="onClick"/>

<Button
android:id="@+id/btn2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/sd2"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="140dp"
android:visibility="gone"
android:onClick="onClick"/>    

</RelativeLayout>

MainActivity.java

package com.example.test;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity  {

    Button b1;
    Button b2; 

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
         b1 = (Button) findViewById(R.id.btn1);
         b2 = (Button) findViewById(R.id.btn2);
    }


    public void onClick(View v) {
        switch(v.getId()) {
            case R.id.btn1:
                b2.setVisibility(View.VISIBLE);
                b1.setVisibility(View.INVISIBLE);
           break;
            case R.id.btn2:
                b2.setVisibility(View.INVISIBLE);
                b1.setVisibility(View.VISIBLE);
           break;

        }
     }
  }


输出 (在仿真器中编译并运行):

  • 应用程序启动时, Button2将不可见,因为它在xml layout设置为不可见。

    在此处输入图片说明

    • 用户单击上方的button1button2将可见,而button1将不可见。



    在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM