如何用Array中的另一个替换ImageView?

时间:2017-03-23 09:35:39

标签: java android arrays xml imageview

所以这是我的xml代码:

<ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:orientation="horizontal"
            android:layout_weight="1">

            <ImageView
                android:layout_width="0dp"
                android:layout_height="200dp"
                android:layout_weight="1"
                android:background="@drawable/profilbildfrau"
                android:id="@+id/bild0"/>

            <ImageView
                android:layout_width="0dp"
                android:layout_height="200dp"
                android:layout_weight="1"
                android:background="@drawable/profilbildfrau"
                android:id="@+id/bild1"/>

            <ImageView
                android:layout_width="0dp"
                android:layout_height="200dp"
                android:layout_weight="1"
                android:background="@drawable/profilbildfrau"
                android:id="@+id/bild2"/>

        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:orientation="horizontal"
            android:layout_weight="1">

            <ImageView
                android:layout_width="0dp"
                android:layout_height="200dp"
                android:layout_weight="1"
                android:background="@drawable/profilbildfrau"
                android:id="@+id/bild3"/>

            <ImageView
                android:layout_width="0dp"
                android:layout_height="200dp"
                android:layout_weight="1"
                android:background="@drawable/profilbildfrau"
                android:id="@+id/bild4"/>

            <ImageView
                android:layout_width="0dp"
                android:layout_height="200dp"
                android:layout_weight="1"
                android:background="@drawable/profilbildfrau"
                android:id="@+id/bild5"/>

        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:orientation="horizontal"
            android:layout_weight="1">

            <ImageView
                android:layout_width="0dp"
                android:layout_height="200dp"
                android:layout_weight="1"
                android:background="@drawable/profilbildfrau"
                android:id="@+id/bild6"/>

            <ImageView
                android:layout_width="0dp"
                android:layout_height="200dp"
                android:layout_weight="1"
                android:background="@drawable/profilbildfrau"
                android:id="@+id/bild7"/>

            <ImageView
                android:layout_width="0dp"
                android:layout_height="200dp"
                android:layout_weight="1"
                android:background="@drawable/profilbildfrau"
                android:id="@+id/bild8"/>

        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:orientation="horizontal"
            android:layout_weight="1">

            <ImageView
                android:layout_width="0dp"
                android:layout_height="200dp"
                android:layout_weight="1"
                android:background="@drawable/profilbildfrau"
                android:id="@+id/bild9"/>

            <ImageView
                android:layout_width="0dp"
                android:layout_height="200dp"
                android:layout_weight="1"
                android:background="@drawable/profilbildfrau"
                android:id="@+id/bild10"/>

            <ImageView
                android:layout_width="0dp"
                android:layout_height="200dp"
                android:layout_weight="1"
                android:background="@drawable/profilbildfrau"
                android:id="@+id/bild11"/>

        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:orientation="horizontal"
            android:layout_weight="1">

            <ImageView
                android:layout_width="0dp"
                android:layout_height="200dp"
                android:layout_weight="1"
                android:background="@drawable/profilbildfrau"
                android:id="@+id/bild12"/>

            <ImageView
                android:layout_width="0dp"
                android:layout_height="200dp"
                android:layout_weight="1"
                android:background="@drawable/profilbildfrau"
                android:id="@+id/bild13"/>

            <ImageView
                android:layout_width="0dp"
                android:layout_height="200dp"
                android:layout_weight="1"
                android:background="@drawable/profilbildfrau"
                android:id="@+id/bild14"/>

        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:orientation="horizontal"
            android:layout_weight="1">

            <ImageView
                android:layout_width="0dp"
                android:layout_height="200dp"
                android:layout_weight="1"
                android:background="@drawable/profilbildfrau"
                android:id="@+id/bild15"/>

            <ImageView
                android:layout_width="0dp"
                android:layout_height="200dp"
                android:layout_weight="1"
                android:background="@drawable/profilbildfrau"
                android:id="@+id/bild16"/>

            <ImageView
                android:layout_width="0dp"
                android:layout_height="200dp"
                android:layout_weight="1"
                android:background="@drawable/profilbildfrau"
                android:id="@+id/bild17"/>

        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:orientation="horizontal"
            android:layout_weight="1">

            <ImageView
                android:layout_width="0dp"
                android:layout_height="200dp"
                android:layout_weight="1"
                android:background="@drawable/profilbildfrau"
                android:id="@+id/bild18"/>

            <ImageView
                android:layout_width="0dp"
                android:layout_height="200dp"
                android:layout_weight="1"
                android:background="@drawable/profilbildfrau"
                android:id="@+id/bild19"/>

            <ImageView
                android:layout_width="0dp"
                android:layout_height="200dp"
                android:layout_weight="1"
                android:background="@drawable/profilbildfrau"
                android:id="@+id/bild20"/>


        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:orientation="horizontal"
            android:layout_weight="1">

            <ImageView
                android:layout_width="0dp"
                android:layout_height="200dp"
                android:layout_weight="1"
                android:background="@android:color/black"
                android:id="@+id/bild21"
                android:visibility="gone"/>

            <ImageView
                android:layout_width="0dp"
                android:layout_height="200dp"
                android:layout_weight="1"
                android:background="@android:color/black"
                android:id="@+id/bild22"
                android:visibility="gone"/>

            <ImageView
                android:layout_width="0dp"
                android:layout_height="200dp"
                android:layout_weight="1"
                android:background="@android:color/black"
                android:id="@+id/bild23"
                android:visibility="gone">

            </ImageView>
        </LinearLayout>
    </LinearLayout>
    </ScrollView>

这些imageViews位于我的java文件中的数组中:

    profilbilder[0] = (ImageView)findViewById(R.id.bild0);
        profilbilder[1] = (ImageView)findViewById(R.id.bild1);
        profilbilder[2] = (ImageView)findViewById(R.id.bild2);
        profilbilder[3] = (ImageView)findViewById(R.id.bild3);
        profilbilder[4] = (ImageView)findViewById(R.id.bild4);
        profilbilder[5] = (ImageView)findViewById(R.id.bild5);
        profilbilder[6] = (ImageView)findViewById(R.id.bild6);
        profilbilder[7] = (ImageView)findViewById(R.id.bild7);
        profilbilder[8] = (ImageView)findViewById(R.id.bild8);
        profilbilder[9] = (ImageView)findViewById(R.id.bild9);
        profilbilder[10] = (ImageView)findViewById(R.id.bild10);
        profilbilder[11] = (ImageView)findViewById(R.id.bild11);
        profilbilder[12] = (ImageView)findViewById(R.id.bild12);
        profilbilder[13] = (ImageView)findViewById(R.id.bild13);
        profilbilder[14] = (ImageView)findViewById(R.id.bild14);
        profilbilder[15] = (ImageView)findViewById(R.id.bild15);
        profilbilder[16] = (ImageView)findViewById(R.id.bild16);
        profilbilder[17] = (ImageView)findViewById(R.id.bild17);
        profilbilder[18] = (ImageView)findViewById(R.id.bild18);
        profilbilder[19] = (ImageView)findViewById(R.id.bild19);
        profilbilder[20] = (ImageView)findViewById(R.id.bild20);
        profilbilder[21] = (ImageView)findViewById(R.id.bild21);
        profilbilder[22] = (ImageView)findViewById(R.id.bild22);
        profilbilder[23] = (ImageView)findViewById(R.id.bild23);

最后三张图片是可见度:已消失。当我点击其他一张图片时,我希望被点击的图片消失,并且三张“消失”图片中的一张应该取而代之。

    for(int i = 0; i <= 20; i++){

        profilbilder[i].setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View view){
                setVisible(false);
                profilbilder[profilZähler].setVisibility(View.VISIBLE);
                profilZähler++;
                Intent profilIntent = new Intent(Hauptmenue.this, Profil.class);
                startActivity(profilIntent);
            }
        });
    }

这就是我试图实现它的方式,但那不起作用。任何人对我如何达到目标都有任何建议吗?

谢谢你, 儒略

2 个答案:

答案 0 :(得分:1)

profilZähler是什么? 也可以使用它代替setVisible(false); profilbilder [I] .setVisibility(View.GONE);

您正在OnClickListener上启动一个新活动,当您回归时,您的视图将是相同的,因此您需要刷新视图。 此外,您还没有编写使后三张图像可见的功能。

根据我对您的布局的理解,您在水平布局中有3个图像,并且有大约8个这样的布局。

如果要在点击时隐藏图像,请将其替换为最后三张图像。是在视图中还是在数组中?

如果它在视图中,只需将bild3中的图像替换为bild21中的图像。

如果在数组中用逻辑替换元素。 int i = 0,int j = 5,int temp = 0; temp = j; j = i;,i = temp;

你可以更具体地了解你的错误是什么以及想要实现什么......? 感谢。

另一种解决方案。 在考虑之后。

如何执行此操作为每张图片创建一张卡片(布局)。

让您的布局有8个空线性布局。

将每个图片从代码中扩展到布局中。并从代码本身添加功能。

实施例

<LinearLayout
 id=+/layout1
.....?

/&GT; 然后你为你的形象创建一张卡

<Layout......>
<ImageView .... ></layout..>

使用

//chk out the syntax.
View view = LayoutInflator.inflate(card,parent..... )
layout1.add(view);
像这里https://github.com/iamShekharGH/RealmAndroidExample/blob/master/MyApplication/app/src/main/java/com/iamshekhargh/realmexample/Fragments/FragmentAddDetails.java

这样的东西

第157行。

答案 1 :(得分:0)

您的ImageView无法点击。请添加bool operator<(const MyStruct& m) const { if(sadness != m.sadness) return sadness < m.sadness; if(effort != m.effort) return effort > m.effort; return happiness > m.happiness; } ,然后重试。或者您可以使用ImageButton而不是ImageView。希望对你有帮助!