0

3 つのインクルードを含む 1 つのレイアウトを作成しましたRelativeLayout。これらのうちの 2 つは非表示であり、1 つのボタンを押すと表示され、一番上に表示されるようにしたいと考えています。出来ますか?

どうすればアンドロイドを作ることができますか:

layout_below="@id/pag6a_1"

プログラム的に?


それは私にエラーになります!! これは私のコードです: `protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.pag6a);

    RelativeLayout pag6a_2 = (RelativeLayout) findViewById(R.id.pag6a_2);
    RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) pag6a_2.getLayoutParams();

    pag6a_2.setVisibility(View.VISIBLE);
    params.addRule(RelativeLayout.BELOW, R.id.pag6a_3);`

..そしてこれは私のlogcatです:

10-10 21:27:11.025: E/AndroidRuntime(3117): 致命的な例外: メイン 10-10 21:27:11.025: E/AndroidRuntime(3117): java.lang.RuntimeException: アクティビティ ComponentInfo{com を開始できません。 beandroid.pirani/com.beandroid.pirani.Pag6A}: java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams は android.widget.RelativeLayout$LayoutParams 10-10 21:27:11.025: E/AndroidRuntime( 3117): android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180) 10-10 21:27:11.025: E/AndroidRuntime(3117): android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 10 -10 21:27:11.025: E/AndroidRuntime(3117): android.app.ActivityThread.access$600(ActivityThread.java:141) 10-10 21:27:11.025: E/AndroidRuntime(3117): Android で。 app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 10-10 21:27:11.025: E/AndroidRuntime(3117): android.os.Handler.dispatchMessage(Handler.java:99) 10-10 21:27:11.025: E/AndroidRuntime(3117): でandroid.os.Looper.loop(Looper.java:137) 10-10 21:27:11.025: E/AndroidRuntime(3117): android.app.ActivityThread.main(ActivityThread.java:5041) 10-10 21: 27:11.025: E/AndroidRuntime(3117): java.lang.reflect.Method.invokeNative(Native Method) 10-10 21:27:11.025: E/AndroidRuntime(3117): java.lang.reflect.Method. (Method.java:511) 10-10 21:27:11.025: E/AndroidRuntime(3117): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 10-10 21: 27:11.025: E/AndroidRuntime(3117): com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 10-10 21:27:11.025: E/AndroidRuntime(3117): dalvik.system で.NativeStart.main(Native Method) 10-10 21:27:11.025: E/AndroidRuntime(3117): 原因: java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams は android.widget.RelativeLayout$LayoutParams にキャストできません 10- 10 21:27:11.025: E/AndroidRuntime(3117): com.beandroid.pirani.Pag6A.onCreate(Pag6A.java:44) 10-10 21:27:11.025: E/AndroidRuntime(3117): Android で。 app.Activity.performCreate(Activity.java:5104) 10-10 21:27:11.025: E/AndroidRuntime(3117): android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 10-10 21:27: 11.025: E/AndroidRuntime(3117): android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) 10-10 21:27:11.025: E/AndroidRuntime(3117): ... 11 もっと見るLinearLayout$LayoutParams は android.widget.RelativeLayout$LayoutParams にキャストできません 10-10 21:27:11.025: E/AndroidRuntime(3117): com.beandroid.pirani.Pag6A.onCreate(Pag6A.java:44) で 10-10 21:27:11.025: E/AndroidRuntime(3117): android.app.Activity.performCreate(Activity.java:5104) 10-10 21:27:11.025: E/AndroidRuntime(3117): android.app.Instrumentation で.callActivityOnCreate(Instrumentation.java:1080) 10-10 21:27:11.025: E/AndroidRuntime(3117): android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) で 10-10 21:27:11.025: E /AndroidRuntime(3117): ... 11 件以上LinearLayout$LayoutParams は android.widget.RelativeLayout$LayoutParams にキャストできません 10-10 21:27:11.025: E/AndroidRuntime(3117): com.beandroid.pirani.Pag6A.onCreate(Pag6A.java:44) で 10-10 21:27:11.025: E/AndroidRuntime(3117): android.app.Activity.performCreate(Activity.java:5104) 10-10 21:27:11.025: E/AndroidRuntime(3117): android.app.Instrumentation で.callActivityOnCreate(Instrumentation.java:1080) 10-10 21:27:11.025: E/AndroidRuntime(3117): android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) で 10-10 21:27:11.025: E /AndroidRuntime(3117): ... 11 件以上app.Activity.performCreate(Activity.java:5104) 10-10 21:27:11.025: E/AndroidRuntime(3117): android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 10-10 21:27: 11.025: E/AndroidRuntime(3117): android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) 10-10 21:27:11.025: E/AndroidRuntime(3117): ... 11 もっと見るapp.Activity.performCreate(Activity.java:5104) 10-10 21:27:11.025: E/AndroidRuntime(3117): android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 10-10 21:27: 11.025: E/AndroidRuntime(3117): android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) 10-10 21:27:11.025: E/AndroidRuntime(3117): ... 11 もっと見る

4

2 に答える 2

1

私はあなたがこのようなものを探していると思います.-

RelativeLayout yourLayout = (RelativeLayout) findViewById(R.id.yourLayoutId);
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) yourLayout.getLayoutParams();
params.addRule(RelativeLayout.BELOW, R.id.pag6a_1);
于 2013-10-10T21:05:49.087 に答える