在Android活动的列表视图中放置多个ImageButtons

时间:2013-11-15 20:26:24

标签: android android-layout android-listview imagebutton

我是Android新手并且正在使用需要使用ListView的应用程序,以便列表视图的每一行都有3个可点击的图像。可能有几行但每行必须有3个ImageButtons。每个ImageButton都有一个onClick事件,用于确定用户选择的图像。下图描绘了我的需求:

Picture showing two rows with 3 images each.

我正在创建ListView和ImageButtons并将它们添加到我的活动的布局中。我已将所有图像命名为bigavatar1,bigavatar2,bigavatar3(总共42个),所以没有,以便能够在循环中使用它们。

在我的活动的OnCreate功能中,这是我迄今为止所能提出的:

LinearLayout mainScreen =(LinearLayout)findViewById(R.id.mainAvatarScreen);             mainScreen.setOrientation(LinearLayout.VERTICAL);

        String PACKAGE_NAME = getApplicationContext().getPackageName();

        int[] imgId = new int[42];
        String fnm = "bigavatar"; //  this is image file name

        ListView avatarListView = (ListView) findViewById(R.id.membersListView);

        for(int i=0; i<42; i++)     {
        imgId[i] = getResources().getIdentifier(PACKAGE_NAME+":drawable/"+fnm+(i+1) , null, null);

        //ImageView img = new ImageView(this);
        ImageButton img = new ImageButton(this);  //create new ImageButton
        //Set ImageButton's Properti es
        img.setMaxHeight(64);
        img.setMaxWidth(64);
                 img.setImageBitmap(BitmapFactory.decodeResource(getResources(),imgId[i])); //src
        img.setBackground(getResources().getDrawable(R.drawable.arrow_imagebutton_selector));

        mainScreen.addView(img);
    }

显然,上面的代码不完整,只能创建图像但还没有使用ListView。

在这个阶段我需要帮助。我该怎么做:

  • 将ImageButtons添加到ListView
  • 为每一行创建一个LinearLayout是不是一个好主意,将它的方向设置为Horizo​​ntal,以便在每一行中整齐地整理我的按钮?
  • 我是否必须为ListView创建自定义适配器?我尝试从ArrayList添加字符串,但这里的要求是向ListView的每一行添加一组3个ImageButtons。
  • 我需要在每个ImageButton上有一个onClick事件,它将返回被点击按钮的名称/ ID。这不会与ListView产生冲突,并且可以按预期工作吗?

如果有人可以帮助我完成代码和策略,那将会很棒。我不是很有经验,所以请原谅我,如果我正在使用或建议不正确的设计策略,我想学习并尽快准备好这项活动。请解释你的答案。谢谢:))

0 个答案:

没有答案