Android UI问题,按钮选择

时间:2012-11-05 17:46:05

标签: android xml

我是Android新手,我刚刚学习了一些活动,我决定创建一些。

和我的MainActivity.java是,

public class MainActivity extends Activity {


@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

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

        public void onClick(View v) {
            // TODO Auto-generated method stub
            startActivity(new Intent(MainActivity.this, WidgetIntro.class));

            Button b = (Button) findViewById(R.id.button2);
            b.setOnClickListener(new OnClickListener() {

                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    startActivity(new Intent(MainActivity.this, Alarm.class));

                    Button c = (Button) findViewById(R.id.button4);
                    c.setOnClickListener(new OnClickListener() {

                        public void onClick(View v) {
                            // TODO Auto-generated method stub
                            startActivity(new   Intent(MainActivity.this, Sms.class));

                            Button d = (Button) findViewById(R.id.button6);
                            d.setOnClickListener(new OnClickListener() {

                                public void onClick(View v) {
                                    // TODO Auto-generated method stub
                                    startActivity(new   Intent(MainActivity.this, Call.class));

                                    Button e = (Button)   findViewById(R.id.button3);
                                    e.setOnClickListener(new OnClickListener() {

                                        public void onClick(View v) {
                                            // TODO Auto-generated method stub
                                            startActivity(new Intent(MainActivity.this, Notes.class));

                                            Button f = (Button) findViewById(R.id.button5);
                                            f.setOnClickListener(new OnClickListener() {

                                                public void onClick(View v) {
                                                    // TODO Auto-generated method stub
                                                    startActivity(new Intent(MainActivity.this, Cbdata.class));

                                                }
                                            });
                                        }
                                    });

                                }
                            });

                        }
                    });
                }
            });

虽然这没有错误,但我已经为每个按钮创建了一些文本来干杯,当我在手机上安装我的应用程序时,我只能按照我编号的顺序访问按钮,这是'位置小工具'按钮我的按钮ID是按钮1所以除了这个按钮我能够选择任何其他按钮,一旦我选择了这个按钮,我只能选择按钮2而不是任何其他按钮,为什么会这样?

我的activity_main.xml代码

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

<Button
    android:id="@+id/button7"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_marginBottom="26dp"
    android:text="About Us" />

 <Button
    android:id="@+id/button3"
    android:layout_width="125dp"
    android:layout_height="wrap_content"
    android:layout_above="@+id/button7"
    android:layout_alignParentRight="true"
    android:layout_marginBottom="36dp"
    android:text="Note Remainder" />

 <Button
    android:id="@+id/button2"
    android:layout_width="125dp"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/button3"
    android:layout_alignBottom="@+id/button3"
    android:layout_alignParentLeft="true"
    android:text="Alarm" />

 <Button
    android:id="@+id/button4"
    android:layout_width="125dp"
    android:layout_height="wrap_content"
    android:layout_above="@+id/button2"
    android:layout_alignParentLeft="true"
    android:layout_marginBottom="40dp"
    android:text="SMS" />

<Button
    android:id="@+id/button6"
    android:layout_width="125dp"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/button4"
    android:layout_alignBottom="@+id/button4"
    android:layout_alignParentRight="true"
    android:text="Call" />

<Button
    android:id="@+id/button1"
    android:layout_width="125dp"
    android:layout_height="wrap_content"
    android:layout_above="@+id/button6"
    android:layout_alignParentRight="true"
    android:layout_marginBottom="37dp"
    android:text="Location Widget" />

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:text="Hello User, Welcome to Mobile location Info! You Choose from the following options :"
    android:textAppearance="?android:attr/textAppearanceLarge" />

<Button
    android:id="@+id/button5"
    android:layout_width="125dp"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/button1"
    android:layout_alignParentLeft="true"
    android:text="Save my locations" />

</RelativeLayout>

        }
    });
}

}

2 个答案:

答案 0 :(得分:0)

您已在上一个按钮的onClick侦听器中定义了onClick侦听器上的每个按钮。因此,当您单击上一个按钮时,第一个按钮之后的每个按钮只有一个指定的onClick侦听器。

相反,这样做:

Button a = (Button) findViewById(R.id.button1);
a.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        // TODO Auto-generated method stub
        startActivity(new Intent(MainActivity.this, WidgetIntro.class));
    }
});

Button b = (Button) findViewById(R.id.button2);
b.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            // TODO Auto-generated method stub
            startActivity(new Intent(MainActivity.this, Alarm.class));
   }
});

小费。一般来说,当你看到超过3级关闭括号时,就像这样你知道存在问题:

答案 1 :(得分:0)

首先,如果问题只是能够访问按钮但是你编号的顺序,我看到这是因为你已经将每个按钮嵌入到另一个中,为了纠正这个问题,让每个按钮监听器成为主要成员的方法onCreate方法,每个方法都有来自UI的相同访问权限。希望有所帮助:)