编辑:我无法让它正常工作。可能是因为我不知道自己在做什么。无论如何,这是我的代码。如果有人可以提供帮助,我将非常感激:我需要让它显示相应模式的电池情绪图像......
主题:
package com.cydeon.plasmamodz;
import android.app.ActionBar;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
public class Themes extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.themes);
ActionBar actionBar = getActionBar();
actionBar.hide();
Button Plus = (Button) findViewById(R.id.button1);
Button Blue = (Button) findViewById(R.id.button2);
Plus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
Intent i = new Intent(Themes.this, Bmod.class);
i.putExtra("drawableResource", R.drawable.blue);
Themes.this.startActivity(i);
}
});
Blue.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
Intent a = new Intent(Themes.this, Bmod.class);
a.putExtra("drawableResource1", R.drawable.plus);
Themes.this.startActivity(a);
}
});
}
}
Bmods:
package com.cydeon.plasmamodz;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.ImageView;
public class Bmod extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.battery);
Intent i = getIntent();
int drawableResource = i.getIntExtra("drawableResource", R.drawable.blue);
ImageView img = (ImageView) findViewById(R.id.iv1);
img.setImageResource(R.drawable.blue);
Intent a = getIntent();
int drawableResource1 = a.getIntExtra("drawableResource1", R.drawable.plus);
ImageView img1 = (ImageView) findViewById(R.id.iv1);
img1.setImageResource(R.drawable.plus);
}
}
电池(XML):
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Button
android:id="@+id/bInstall"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:text="Install" />
<Button
android:id="@+id/bReturn"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:text="Return" />
<ImageView
android:id="@+id/iv1"
android:layout_width="match_parent"
android:layout_height="800dp" />
</RelativeLayout>
答案 0 :(得分:3)
Intent i = new Intent(this, BaseClassForMod);
i.putExtra("drawableResource", R.drawable.this_mod_drawable);
startActivity(i);
然后在那个Activity的onCreate():
Intent i = getIntent();
int drawableResource = i.getIntExtra("drawableResource", R.drawable.default);
//Get a reference to your ImageView...
imageView.setImageResource(drawableResource);
不要相信这段代码要编译,但这是一般的想法。对所有这些活动使用相同的活动,在意图中传递适当的资源ID(例如,对于mod1,发送mod1的可绘制ID),然后在活动中检查该资源ID并以编程方式设置它。
答案 1 :(得分:1)
如果每个类都做同样的事情,你不应该需要50个类和50个xml布局。制作一个活动和一个布局。当用户选择某些内容时,将某种类型的id作为Intent extra传递给第二个活动,以便它可以加载任何适当的项目。我不知道你的数据是如何建模的,但应该有一种方法来唯一地识别每个选项(如果没有,你应该实现一个)。
您的第一项活动也不需要每个项目的按钮。使用ListView和适配器,然后您只需要为一行提供布局。
答案 2 :(得分:1)
仅制作一项活动。在其内部获得您的图像的参考:
ImageView iv = (ImageView)findViewById(R.id.yourImgId);
然后将图片设置为您想要的图片:
iv.setImageResource(R.drawable.battery_img_1);