簡體   English   中英

我寫了以下幾行代碼來更改此類的xml文件,但是它不起作用

[英]I wrote this few lines of code to change the xml file of this class but it doesn't work

我是Java和Android Studio的初學者。 使用此代碼,我嘗試在此活動中更改布局。 當前布局為“ marcelscorpion_1”。 只有按鈕“ weiter_1”和“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()您都應該再次查找並setOnClickListener(..)包含在新布局中的所有按鈕。

更好的方法是在布局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);

        }
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM