Java 多个活动在单个布局中进行更改
我刚刚开始制作我的第一个安卓应用程序,我正试图更加熟悉安卓开发的基本原则。因此,我的主要活动很快就爆发出一行行代码。为了使我的代码更易于维护,我尝试将代码片段放在不同的活动中。同样根据android的设计原则: 现在,我正努力用一个XML布局来使用不同的活动。我在这里发现了一些类似的例子,比如:但是我也读到我应该使用片段。我看不出如何正确地解决这个问题 我在代码中遇到的具体问题是,第二个活动应该使用setImageResource将imageview的背景更改为正常,但事实并非如此 我的代码:Java 多个活动在单个布局中进行更改,java,android,android-layout,Java,Android,Android Layout,我刚刚开始制作我的第一个安卓应用程序,我正试图更加熟悉安卓开发的基本原则。因此,我的主要活动很快就爆发出一行行代码。为了使我的代码更易于维护,我尝试将代码片段放在不同的活动中。同样根据android的设计原则: 现在,我正努力用一个XML布局来使用不同的活动。我在这里发现了一些类似的例子,比如:但是我也读到我应该使用片段。我看不出如何正确地解决这个问题 我在代码中遇到的具体问题是,第二个活动应该使用setImageResource将imageview的背景更改为正常,但事实并非如此 我的代码:
package com.test.scores;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;
public class MainActivity extends Activity implements View.OnClickListener {
private ImageButton btn1, btn2;
int varMinusScore;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1 = (ImageButton) findViewById(R.id.btn1);
btn1.setOnClickListener(this);
btn2 = (ImageButton) findViewById(R.id.btn2);
btn2.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn1:
varMinusScore = 1;
startActivity(new Intent(getApplicationContext(), ResetImageResources.class));
btn1.setImageResource(R.drawable.btn01p);
}
switch (v.getId()) {
case R.id.btn2:
varMinusScore = 2;
startActivity(new Intent(getApplicationContext(), ResetImageResources.class));
btn2.setImageResource(R.drawable.btn02p);
}
}
}
第二项活动:
package com.test.scores;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ImageButton;
public class ResetImageResources extends Activity {
private ImageButton btn1, btn2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1 = (ImageButton) findViewById(R.id.btn1);
btn2 = (ImageButton) findViewById(R.id.btn2);
btn1.setImageResource(R.drawable.btn01);
btn2.setImageResource(R.drawable.btn02);
finish();
}
}
活动之间是绝对孤立的。将同一XML文件设置为每个活动的内容并不意味着它是布局的相同/共享实例。你不应该考虑布局,而应该考虑活动 在您的情况下,您只需开始第二个活动,更改此处按钮的背景,然后返回并查看第一个活动。第二个活动中的任何更改都不会反映到其他地方。就这样。试试这个:
插入一个按钮以在第二个活动中完成。在按钮界面下使用finish()
button.setOnClickListener(新的OnClickListener(){})代码>然后您将清楚地注意到背景之间的差异。只有单击才能返回到主要活动 你需要回到developer.android.com,再次阅读基本教程。现在我明白了。我也理解重新加载屏幕实际上是启动R.layout.activity_main的新实例。我以前没听说过。但是我该怎么办呢?有没有其他方法可以将我的代码分割成若干部分(并更改相同的布局),或者我应该在MainActivity中保留所有影响布局的代码?最好为一个布局文件维护一个java文件。根据您的功能要求执行此操作。