-3

私はアンドロイドが初めてです。選択したそれぞれの画像で変化するボタン付きのテキストビューを追加する方法がわかりません。誰かが適切なコードを手伝ってくれますか。どうすればこれを行うことができますか? どんな助けでも大歓迎です。

4

1 に答える 1

0

応答から離れて、オブジェクトを保持するコレクションまたは配列リストのいずれかを設定し、クリックしたものに基づいてそれらを参照します。

画像がアクティビティ内の唯一のオブジェクトである場合、単一の画像でこれを行う方法を次に示します。

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

複数のボタンを使用している場合は、上記のように配列リストまたはコレクションをセットアップします。

[編集]

配列リストに何かを入れるコードは次のようになります...

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 を使用して文字列、テキストビュー、およびボタンをすべて同時に参照できます。たとえば、ボタン番号 1 をクリックします... を使用できますtvs.get(1)buttons.get(1)stringResources.get(1)

それはもっと理にかなっていますか?

于 2012-08-26T19:17:06.423 に答える