我写了这几行代码来更改此类的 xml 文件,但它不起作用



我是Java和Android Studio的初学者。用这个代码,我试图改变这个活动的布局。当前布局为"marcelscorpion_1"。只有按钮"weiter_1"one_answers"zur ck_1"正在工作,我不知道为什么…

public void SwitchLayout()
{
    Button weiter_1 = (Button) findViewById(R.id.marcelscorpion_weiter1);
    Button zurück_1 = (Button) findViewById(R.id.marcelscorpion_zurück1);
    View marcelscorpion_2 = LayoutInflater.from(getApplication()).inflate(R.layout.marcelscorpion_2, null);
    Button weiter_2 = (Button) marcelscorpion_2.findViewById(R.id.marcelscorpion_weiter2);
    Button zurück_2 = (Button) marcelscorpion_2.findViewById(R.id.marcelscorpion_zurück2);
    View marcelscorpion_3 = LayoutInflater.from(getApplication()).inflate(R.layout.marcelscorpion_3, null);
    Button weiter_3 = (Button) marcelscorpion_3.findViewById(R.id.marcelscorpion_weiter3);
    Button zurück_3 = (Button) marcelscorpion_3.findViewById(R.id.marcelscorpion_zurück3);

    weiter_1.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            setContentView(R.layout.marcelscorpion_2);
        }
    });
    weiter_2.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            setContentView(R.layout.marcelscorpion_3);
        }
    });
    weiter_3.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            setContentView(R.layout.marcelscorpion_1);
        }
    });
    zurück_1.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            setContentView(R.layout.marcelscorpion_3);
        }
    });
    zurück_2.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            setContentView(R.layout.marcelscorpion_1);
        }
    });
    zurück_3.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            setContentView(R.layout.marcelscorpion_2);
        }
    });
}

需要帮助;)谢谢你!

每次调用setContentView()时,您应该再次找到并设置tonclicklistener(..)以包含在新布局中的所有按钮。

一个更好的方法是在layouts xml文件中定义onclick属性。例如,如果你有这个:

<Button
    android:id="@+id/w2"
    android:onClick="getms3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="w2" />

那么你应该定义

public void getms3(View v) 
{
   setContentView(R.layout.ms3);
}

当您在onClick()方法中执行setContentView()时,只需添加该布局的按钮:

weiter_1.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            setContentView(R.layout.marcelscorpion_2);
            Button weiter_2 = (Button) marcelscorpion_2.findViewById(R.id.marcelscorpion_weiter2);
Button zurück_2 = (Button) marcelscorpion_2.findViewById(R.id.marcelscorpion_zurück2);
        }
    });

最新更新