0

Java を使用してレイアウトを動的に作成する必要があります。

以下のように、9 つの線形レイアウトを動的に作成しました。

for (int i=0;i<10;i++)
{
    Element e = (Element) nl.item(i);
    cpName = parser.getValue(e,"coverpage");    
    System.out.println("coverpage name :" + cpName);

    LinearLayout lbottomLayoutu1=new LinearLayout(getApplicationContext());
    lbottomLayoutu1.setGravity(Gravity.CENTER);
    LinearLayout.LayoutParams layoutParams1u1= new LinearLayout.LayoutParams(width,height/4);
    layoutParams1u1.weight=1.0f;    
    lbottomLayoutu1.setLayoutParams(layoutParams1u1);
    lbottomLayoutu1.setBackgroundColor(Color.RED);
    lbottomLayoutu1.setBackgroundResource(R.drawable.image);
    linearLayout.addView(lbottomLayoutu1);

    ImageView iv1=new ImageView(getApplicationContext());
    LinearLayout.LayoutParams layoutParams= new LinearLayout.LayoutParams(width/4,height/4);
    iv1.setLayoutParams(layoutParams);
    iv1.setImageResource(R.drawable.coverpage3);
    lbottomLayoutu1.addView(iv1);

    lbottomLayoutu1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            System.out.println("Calling coverpage");
            String Url = WebUrl+cpName;
            System.out.println("web Url: " + Url);
            Intent in = new Intent(getApplicationContext(),CurlActivity.class);
            Bundle bundle = new Bundle();
            bundle.putString("Image Url",Url);
            in.putExtras(bundle);
            startActivity(in);
        }
    });
    setContentView(linearLayout);
}

レイアウトごとにタッチイベントを配置しました。しかし、レイアウトに触れた場合、どのレイアウトが触れているかをどのように知ることができますか?

4

3 に答える 3

0

各レイアウトのIDを次のように設定する必要があります

    obj.setId(i)

タッチイベントでそれを識別できるように

    int id=obj.getId()

それに応じて作業してください!

于 2013-04-12T10:32:32.990 に答える
0

カスタムlistViewを使用する方が良いと思います(ここのようにhttp://www.codeproject.com/Articles/507651/Customized-Android-ListView-with-Image-and-Text

于 2013-04-12T10:26:04.360 に答える