-3

編集:これを正しく機能させることができません。たぶん、自分が何をしているのかわからないからです。とにかく、これが私のコードです。誰かが助けてくれたら、私はとても感謝しています:対応するモッドのバッテリームード画像を表示するためにそれを取得する必要があります...

テーマ:

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);

        }
    });


}

}

Bモッド:

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>
4

3 に答える 3

3
Intent i = new Intent(this, BaseClassForMod);
i.putExtra("drawableResource", R.drawable.this_mod_drawable);
startActivity(i);

次に、そのアクティビティの 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 を確認し、プログラムで設定します。

于 2013-02-18T21:45:23.840 に答える
1

それらのすべてが同じことを行う場合、50 個のクラスと 50 個の xml レイアウトは必要ありません。1 つのアクティビティと 1 つのレイアウトを作成します。ユーザーが何かを選択したら、何らかの ID をインテント エクストラとして 2 番目のアクティビティに渡し、適切なアイテムをロードできるようにします。データがどのようにモデル化されているかはわかりませんが、各オプションを一意に識別する方法が必要です (ない場合は、実装する必要があります)。

最初のアクティビティでは、各アイテムのボタンも必要ありません。ListView と Adapter を使用すると、1 行のレイアウトを提供するだけで済みます。

于 2013-02-18T21:44:26.063 に答える
1

単一のアクティビティのみを作成します。その中にあなたの画像への参照を取得します:

ImageView iv = (ImageView)findViewById(R.id.yourImgId);

次に、画像を好きなように設定します。

iv.setImageResource(R.drawable.battery_img_1);
于 2013-02-18T21:44:42.417 に答える