在main.xml上更改imageview的按钮(android)

时间:2012-06-27 23:03:02

标签: android android-layout

(我的第一篇文章,顺便说一下)

我的问题是如此新手,以至于我找不到任何问过它的人,我试过了。所以这里......:

我的主屏幕有一个imageview。单击它,它会将您发送到不同的布局,从中可以选择一组图像(图像按钮)(工作正常)。

按下这些图像按钮中的任何一个都应将该图像发送到我的主图像视图(崩溃)

我在这个布局中创建了一个图像视图,其中包含ImButton,并将图像发送到那里。这工作正常,所以switch语句没问题。

我试图在main.java中使我的主imageview成为“公共”但仍然崩溃。

所以问题是: 如何将图像从一个布局/类发送到另一个布局/类?

提前感激。

一些代码:

我的二级布局:

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>

在相同的布局中,imageview可以更改。只是在主要布局上发送到imageview时没有。

4 个答案:

答案 0 :(得分:1)

如果这就是你的意思,你不应该在活动之间发送图像。你可能会这样做,但通过像intent这样的东西肯定会很慢。根据我的理解,您想要转到活动B,然后单击一个ImageButton,然后返回到活动A并将其显示在ImageView中。难道你不能通过意图(即作为字符串)传递图像的路径吗?或者,您可以将名称作为String传递,然后通过在活动A中设置ImageView的源来在下一个Activity中显示该图像。

如果图像是临时创建的,您需要传递它,您可以将其保存到私有文件(MODE_PRIVATE),然后在下一个活动中访问它。

很抱歉,如果我正在考虑某个话题。

修改

查看this了解更多信息。

编辑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

答案 1 :(得分:0)

您不会将ImageView从一个布局发送到另一个布局。 你可以,

  1. 删除布局上的ImageView并添加到其他布局(通过膨胀)。
  2. 隐藏在第一个布局上并在其他布局上显示。

答案 2 :(得分:0)

  1. i
  2. 设置意图FartSelector
  3. startActivity(i);
  4. 创建一个OnActivityResult(int result_code)并检查FartSelector的代码
  5. 在屁选择器中,点击
  6. 打包带有所需图像数据的新意图
  7. 创建并打包意图后调用setResult(newIntent);finish();
  8. 在3点离开我们离开的地方,解压缩意图并在ImageView中使用它。

答案 3 :(得分:0)

你的问题是这个

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

ivValgtMax不是fartlayout中定义的ID,因此该代码会为您提供null。我假设ivValgtMax引用了另一种布局的ImageView

如果我理解正确,您想要从另一个活动A(具有主ImageView)启动活动B(其中包含图像),在活动B中选择一个图像,然后返回所选用户点击后将图像转换为活动A.

如果所有这些都是正确的,我们可以继续。您希望从A启动活动B的方式是使用类似

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

其中IMAGE_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_NAME将是一个静态String,您可以使用它来查找正确的图像(我们将在下一步中找到如何使用它)。 userSelection将是您发送回活动A的数据。您可以使用v.getId()并将您的switch语句移至活动A.

最后,您需要覆盖活动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;
    }
}