0

(私の最初の投稿、ところで)

私の問題は非常に初心者っぽいので、質問した人を見つけることができず、試してみました。だからここに行く..:

私のメイン画面にはイメージビューがあります。それをクリックすると、一連の画像(画像ボタン)を選択できる場所とは別のレイアウトに移動します(正常に動作します)。

これらの画像ボタンのいずれかを押すと、その画像がメインの画像ビューに送信されます (クラッシュ)

ImButtons があるこのレイアウト内にイメージビューを作成し、代わりにそこにイメージを送信しました。これは正常に機能しているため、switch ステートメントは問題ありません。

メインのイメージビューを main.java で「パブリック」にしようとしましたが、それでもクラッシュします。

質問: あるレイアウト/クラスから別のレイアウト/クラスに画像を送信するにはどうすればよいですか?

事前に感謝します。

ヤコブ

いくつかのコード:

私の二次レイアウト:

package egen.helt.min;

import android.app.Activity;``
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.ImageView;

public class FartSelect extends Activity implements OnClickListener {

    public ImageView VælgMax;
    MediaPlayer mpButtonClick;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fartselect);

        VælgMax = (ImageView) findViewById(R.id.ivValgtMax);
        ImageButton skilt30 = (ImageButton) findViewById(R.id.ib30s);
        ImageButton skilt40 = (ImageButton) findViewById(R.id.ib40s);
        ImageButton skilt50 = (ImageButton) findViewById(R.id.ib50s);
        ImageButton skilt60 = (ImageButton) findViewById(R.id.ib60s);
        ImageButton skilt70 = (ImageButton) findViewById(R.id.ib70s);
        ImageButton skilt80 = (ImageButton) findViewById(R.id.ib80s);
        ImageButton skilt90 = (ImageButton) findViewById(R.id.ib90s);
        ImageButton skilt100 = (ImageButton) findViewById(R.id.ib100s);
        ImageButton skilt110 = (ImageButton) findViewById(R.id.ib110s);
        ImageButton skilt120 = (ImageButton) findViewById(R.id.ib120s);
        ImageButton skilt130 = (ImageButton) findViewById(R.id.ib130s);

        skilt30.setOnClickListener(this);
        skilt40.setOnClickListener(this);
        skilt50.setOnClickListener(this);``
        skilt60.setOnClickListener(this);
        skilt70.setOnClickListener(this);
        skilt80.setOnClickListener(this);
        skilt90.setOnClickListener(this);
        skilt100.setOnClickListener(this);
        skilt110.setOnClickListener(this);
        skilt120.setOnClickListener(this);
        skilt130.setOnClickListener(this);

    }

    public void onClick(View v) {
        // TODO Auto-generated method stub

        switch (v.getId()) {
        case R.id.ib30s:
            VælgMax.setImageResource(R.drawable.skilt30s);
            break;
        case R.id.ib40s:
            VælgMax.setImageResource(R.drawable.skilt40s);
            break;
        case R.id.ib50s:
            VælgMax.setImageResource(R.drawable.skilt50s);
            break;
        case R.id.ib60s:
            VælgMax.setImageResource(R.drawable.skilt60s);
            break;
        case R.id.ib70s:
            VælgMax.setImageResource(R.drawable.skilt70s);
            break;
        case R.id.ib80s:
            VælgMax.setImageResource(R.drawable.skilt80s);
            break;
        case R.id.ib90s:
            VælgMax.setImageResource(R.drawable.skilt90s);
            break;
        case R.id.ib100s:
            VælgMax.setImageResource(R.drawable.skilt100s);
            break;
        case R.id.ib110s:
            VælgMax.setImageResource(R.drawable.skilt110s);
            break;
        case R.id.ib120s:
            VælgMax.setImageResource(R.drawable.skilt120s);
            break;
        case R.id.ib130s:
            VælgMax.setImageResource(R.drawable.skilt130s);
            break;

        }

    }
}

そして、FartSelect.xml は次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >



    <ImageView
        android:id="@+id/ivValgteMax"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:src="@drawable/blanktskiltsk" />

    <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="400dp" >

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:orientation="vertical" >

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal" >

                <ImageButton
                    android:id="@+id/ib30s"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="50"
                    android:background="@android:color/black"
                    android:gravity="center"
                    android:src="@drawable/skilt30s" />

                <ImageButton
                    android:id="@+id/ib40s"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="50"
                    android:background="@android:color/black"
                    android:gravity="center"
                    android:src="@drawable/skilt40s" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal" >

                <ImageButton
                    android:id="@+id/ib50s"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="50"
                    android:background="@android:color/black"
                    android:gravity="center"
                    android:src="@drawable/skilt50s" />

                <ImageButton
                    android:id="@+id/ib60s"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="50"
                    android:background="@android:color/black"
                    android:gravity="center"
                    android:src="@drawable/skilt60s" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal" >

                <ImageButton
                    android:id="@+id/ib70s"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="50"
                    android:background="@android:color/black"
                    android:gravity="center"
                    android:src="@drawable/skilt70s" />

                <ImageButton
                    android:id="@+id/ib80s"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="50"
                    android:background="@android:color/black"
                    android:gravity="center"
                    android:src="@drawable/skilt80s" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal" >

                <ImageButton
                    android:id="@+id/ib90s"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="50"
                    android:background="@android:color/black"
                    android:gravity="center"
                    android:src="@drawable/skilt90s" />

                <ImageButton
                    android:id="@+id/ib100s"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="50"
                    android:background="@android:color/black"
                    android:gravity="center"
                    android:src="@drawable/skilt100s" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal" >

                <ImageButton
                    android:id="@+id/ib110s"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="50"
                    android:background="@android:color/black"
                    android:gravity="center"
                    android:src="@drawable/skilt110s" />

                <ImageButton
                    android:id="@+id/ib120s"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="50"
                    android:background="@android:color/black"
                    android:gravity="center"
                    android:src="@drawable/skilt120s" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal" >

                <ImageButton
                    android:id="@+id/ib130s"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="50"
                    android:background="@android:color/black"
                    android:gravity="center"
                    android:src="@drawable/skilt130s" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal" >

                <ImageButton
                    android:id="@+id/ib30sk"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="50"
                    android:background="@android:color/black"
                    android:gravity="center"
                    android:src="@drawable/skilt30sk" />

                <ImageButton
                    android:id="@+id/ib40sk"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="50"
                    android:background="@android:color/black"
                    android:gravity="center"
                    android:src="@drawable/skilt40sk" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal" >

                <ImageButton
                    android:id="@+id/ib50sk"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="50"
                    android:gravity="center"
                    android:src="@drawable/skilt50sk" />

                <ImageButton
                    android:id="@+id/ib60sk"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="50"
                    android:gravity="center"
                    android:src="@drawable/skilt60sk" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal" >

                <ImageButton
                    android:id="@+id/ib70sk"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="50"
                    android:gravity="center"
                    android:src="@drawable/skilt70sk" />

                <ImageButton
                    android:id="@+id/ib80sk"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="50"
                    android:gravity="center"
                    android:src="@drawable/skilt80sk" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal" >

                <ImageButton
                    android:id="@+id/ib90sk"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="50"
                    android:gravity="center"
                    android:src="@drawable/skilt90sk" />

                <ImageButton
                    android:id="@+id/ib100sk"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="50"
                    android:gravity="center"
                    android:src="@drawable/skilt100sk" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal" >

                <ImageButton
                    android:id="@+id/ib110sk"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="50"
                    android:gravity="center"
                    android:src="@drawable/skilt110sk" />

                <ImageButton
                    android:id="@+id/ib120sk"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="50"
                    android:gravity="center"
                    android:src="@drawable/skilt120sk" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal" >

                <ImageButton
                    android:id="@+id/ib130sk"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="50"
                    android:gravity="center"
                    android:src="@drawable/skilt130sk" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal" >

                <ImageButton
                    android:id="@+id/ib30"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="50"
                    android:gravity="center"
                    android:src="@drawable/skilt30" />

                <ImageButton
                    android:id="@+id/ib40"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="50"
                    android:gravity="center"
                    android:src="@drawable/skilt40" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal" >

                <ImageButton
                    android:id="@+id/ib50"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="50"
                    android:gravity="center"
                    android:src="@drawable/skilt50" />

                <ImageButton
                    android:id="@+id/ib60"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="50"
                    android:gravity="center"
                    android:src="@drawable/skilt60" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal" >

                <ImageButton
                    android:id="@+id/ib70"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="50"
                    android:gravity="center"
                    android:src="@drawable/skilt70" />

                <ImageButton
                    android:id="@+id/ib80"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="50"
                    android:gravity="center"
                    android:src="@drawable/skilt80" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal" >

                <ImageButton
                    android:id="@+id/ib90"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="50"
                    android:gravity="center"
                    android:src="@drawable/skilt90" />

                <ImageButton
                    android:id="@+id/ib100"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="50"
                    android:gravity="center"
                    android:src="@drawable/skilt100" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal" >

                <ImageButton
                    android:id="@+id/ib110"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="50"
                    android:gravity="center"
                    android:src="@drawable/skilt110" />

                <ImageButton
                    android:id="@+id/ib120"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="50"
                    android:gravity="center"
                    android:src="@drawable/skilt120" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal" >

                <ImageButton
                    android:id="@+id/ib130"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="50"
                    android:gravity="center"
                    android:src="@drawable/skilt130" />
            </LinearLayout>
        </LinearLayout>
    </ScrollView>

</LinearLayout>

同じレイアウト内でイメージ ビューを変更できます。メインレイアウトのイメージビューに送信されたときではありません。

4

4 に答える 4

1

アクティビティ間で画像を送信することは想定されていません。あなたはおそらくそれを行うことができますが、インテントのようなものでは間違いなく遅くなります. 私が理解していることから、アクティビティ B に移動して ImageButton をクリックし、アクティビティ A に戻って ImageView に表示する必要があります。インテントを介して(つまり、文字列として)画像のパスを渡すことはできませんか?または、名前を文字列として渡し、アクティビティ A で ImageView のソースを設定して、次のアクティビティでその画像を表示することもできます。

イメージが一時的に作成されたもので、それを渡す必要がある場合は、それをプライベート ファイル (MODE_PRIVATE) に保存して、次のアクティビティでアクセスすることができます。

的外れなことを考えていたらすみません。

編集

詳しくはこちらをご覧ください。

編集2

インテントを使用して、アクティビティ間で文字列を渡すことができます: (つまり、画像のパス/名前)

String myImageName = "image1";
Intent picIntent = new Intent(this, NextActivity.class);
picIntent.putExtra("name", myImageName); //this has to correspond to the below name
startActivity(intent);

次のアクティビティで取得できます。

String thePictureName = getIntent().getStringExtra("name"); //correspond to above name
于 2012-06-27T23:23:38.333 に答える
0

あなたの問題はこれです

VælgMax = (ImageView) findViewById(R.id.ivValgtMax);

ivValgtMaxで定義されている ID ではないfartlayoutため、そのコードはnull. 別のレイアウトからのivValgtMaxを参照していると思います。ImageView

私があなたを正しく理解している場合、別のアクティビティ A (メインを含む) からアクティビティ B (画像を含む) を起動し、アクティビティ B でImageView画像を選択し、ユーザーが選択した後に選択した画像をアクティビティ A に戻す必要があります。クリックしました。

これがすべて正しければ、続行できます。A からアクティビティ B を起動する方法は、次のようなものを使用することです

Intent intent = new Intent(this, ActivityB.class);    
startActivityForResult(intent, IMAGE_SELECTION_VALUE);

whereIMAGE_SELECTION_VALUEは整数を割り当てる静的な値です。一意のものにしてください。

アクティビティ B では、ユーザーがクリックを終了したら、選択をアクティビティ A に戻すことが目標です。これを行うには、インテントを作成して結果を設定する必要があります。

public void onClick(View v) {
    ... your code ...
    Intent resultIntent = new Intent(null);
    resultIntent.putExtra(IMAGE_FIELD_NAME, userSelection);
    setResult(Activity.RESULT_OK, resultIntent);
    finish();
}

上記のコードでは、正しい画像を見つけるために使用できるIMAGE_FIELD_NAMEstaticになります (次の手順で使用方法を確認します)。アクティビティ A に送り返すデータになります。これを使用して、switch ステートメントをアクティビティ A に移動できます。StringuserSelectionv.getId()

最後に、アクティビティ A をオーバーライドしますonActivityResult。これにより、アクティビティ B から結果を取得できるようになり、ここで を使用しますIMAGE_FIELD_NAME

public void onActivityResult(int requestCode, int resultCode, Intent data) {     
    super.onActivityResult(requestCode, resultCode, data); 
    switch(requestCode) { 
        case IMAGE_SELECTION_VALUE:
            if (resultCode == Activity.RESULT_OK) { 
                int imageId = data.getIntExtra(IMAGE_FIELD_NAME);
                // now you can update your ImageView here
            }
            break; 

        default: 
            break;
    }
} 
于 2012-06-28T00:14:15.007 に答える
0

あるレイアウトから別のレイアウトに ImageView を送信しません。あなたはどちらかかもしれません、

  1. レイアウト上の ImageView を削除し、他のレイアウトに追加します (膨張させます)。
  2. 最初のレイアウトで非表示にし、他のレイアウトで表示します。
于 2012-06-27T23:05:49.260 に答える
0
  1. iのインテントを設定するFartSelector
  2. startActivity(i);
  3. OnActivityResult(int result_code) を作成し、FartSelector のコードを確認します
  4. おならセレクターで、クリック時に目的の画像データを使用して新しいインテントをパックします
  5. インテントを作成してパックした後setResult(newIntent);に呼び出すfinish();
  6. 3 で中断したところから始めて、インテントをアンパックし、ImageView で使用します。
于 2012-06-27T23:31:49.757 に答える