textview与画廊中的按钮

时间:2012-08-17 17:37:46

标签: android android-layout android-intent

我是android的新手。我不明白如何使用随各自所选图像更改的按钮添加textview。任何人都可以通过正确的代码帮助我。我怎么能这样做? 任何帮助都非常感谢。

1 个答案:

答案 0 :(得分:0)

离开你的回复,设置一个集合或一个arraylist来保存你的对象,然后根据你点击的内容引用它们。

如果图像是活动中唯一的对象,则可以使用单个图像执行此操作。

XML:

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

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/image"
        android:src="@drawable/YOUR_IMAGE_RESOURCE"
        />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Text for the picture"
        android:visibility="invisible"
        android:id="@+id/text"
        />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello"
        android:id="@+id/button"
        android:visibility="invisible"
        />
</LinearLayout>

爪哇

ImageView photoImage = (ImageView)findViewById(R.id.image);
TextView text = (TextView)findViewById(R.id.text);
Button button = (Button)findViewById(R.id.button);

photoImage.setOnClickListener(new OnClickListener{
    void onClick(View v){
        text.setVisibility(View.VISIBLE);
        button.setVisibility(View.VISIBLE);
    }
});

// Set the OnClickListener for "button" here, to start a new intent or whatever

如果你正在使用多个按钮,请按照我上面的描述设置一个arraylist或集合。

<强> [编辑]

将某些内容放入数组列表的代码如下所示......

List<TextView> tvs = new ArrayList<TextView>();
// Setup the views
for (int i = 0; i < numberOfTextViews; i++){
    TextView thisTextView = new TextView(context);
    // Setup whatever layout info you want here
    tvs.add(thisTextView);
}
// Use a view inflater here to add each of the textviews however you want (table layout, linearlayout, etc.)

然后,您可以根据需要做任何您想做的事情......只需使用tvs.get(NUMBER)来阻止您正在寻找的任何内容。您可以使用按钮或其他任何内容执行相同操作,并使用相同的NUMBER同时引用字符串,textview和按钮。例如,点击第1号按钮......您可以使用tvs.get(1)buttons.get(1)stringResources.get(1)

这更有意义吗?