Вопрос по android – Как открыть макет по нажатию кнопки (Android)

16

Как я могу открыть другой файл макета XML, когда я нажимаю кнопку в файле main.xml?

поэтому, если у меня есть main.xml, в котором есть кнопка sying, нажмите здесь, и я нажму ее, она откроет файл second.xml (макет).

Вы должны использовать два действия для переключения между двумя макетами, каждый из которых обрабатывает свой собственный макет, который является наилучшим способом сделать это. K_Anas
Пожалуйста, расскажите нам, что вы попробовали в первую очередь. nicholas.hauschild

Ваш Ответ

3   ответа
3

- накачать кнопку из xml
-добавить onClickListener на него
-установить новый макет в событии onClick

Button btn = (Button) findViewById(R..myButton);
btn.setOnClickListener(new OnClickListener(){

@Overre
public vo onClick(View v)
{
    MyActivity.setContentView(R.layout.newlayout);
}

});

Как-то так должно работать ...

Как мне это сделатьpublic void onClick() { MyActivity.setContentView(R.layout.newlayout); }  в XML Yusef Bee
ОТЛИЧНЫЙ! это сработало Yusef Bee
что это невозможно, лучшее, что вы можете сделать, - это определить прослушиватель onClick в XML с помощью & quot; android: onClick & quot ;. Логика этого должна быть в коде Java.
0

-Добавить событие onClick прямо в дизайнере.

Open the activity (Activity1.xml for example) file in the designer mode Select the button that will trigger the transition Add the function name on the onClick box of the right panel with all the button properties

-Откройте файл активности .kt

Add the function with the name that you just defined in the designer

fun openActivity2(view: View) { intent = Intent(view.context,Activity2::class.java) startActivity(intent) }

Теперь у вас есть функция, связанная с событием onClick вашей кнопки

29

эторуководство объясните, что вам нужно, шаг за шагом.

Сначала создайте два макета:

main.xml

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

    <TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textColor="#000000"
    android:text="This is Activity 1" />

       <Button android:text="Next"
        android:id="@+id/Button01"
        android:layout_width="250px"
            android:textSize="18px"
        android:layout_height="55px">
    </Button>    

</LinearLayout>

second.xml

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

    <TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textColor="#000000"
    android:text="This is Activity 2" />

       <Button android:text="Previous"
        android:id="@+id/Button02"
        android:layout_width="250px"
            android:textSize="18px"
        android:layout_height="55px">
    </Button>    

</LinearLayout>

Второй Добавьте свою активность в файл манифеста

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.rr"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".Activity1"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".Activity2"></activity>
    </application>
    <uses-sdk android:minSdkVersion="3" />
</manifest>

Activity1.java

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class Activity1 extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Button next = (Button) findViewById(R.id.Button01);
        next.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                Intent myIntent = new Intent(view.getContext(), Activity2.class);
                startActivityForResult(myIntent, 0);
            }

        });
    }
}

Чтобы переключиться на Activity2, вы должны:

  1. Gets a reference to the button with ID Button01 on the layout using (Button) findViewById(R.id.Button01).

  2. Create an OnClick listener for the button.

  3. And the most important part, creates an “Intent” to start another Activity. The intent needs two parameters: a context and the name of the Activity that we want to start (Activity2.class)

Activity2.java

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class Activity2 extends Activity {

    /** Called when the activity is first created. */
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second);

        Button next = (Button) findViewById(R.id.Button02);
        next.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                Intent intent = new Intent();
                setResult(RESULT_OK, intent);
                finish();
            }

        });
    }

Похожие вопросы