1

私はアンドロイドが初めてで、アクティビティについて学んだばかりで、いくつか作成することにしました。

私の 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>

        }
    });
}

}
4

2 に答える 2

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 レベル以上の右中括弧が表示される場合は、問題があることがわかります。

于 2012-11-05T17:51:19.043 に答える
0

まず、問題がボタンにしかアクセスできないが、番号を付けた順序である場合、これは各ボタンを他のボタンに埋め込んでいるためだと思います。この問題を修正するには、各ボタンリスナーを onCreate メソッドのメインメンバーメソッドにしますそれぞれが UI から平等にアクセスできるようにします。お役に立てば幸いです:)

于 2012-11-05T17:52:37.440 に答える