如何在Android中的另一个布局xml文件中创建Button对象

萨加尔萨拉

您好,我创建了一个Android应用程序,在其中使用CustomAdapter在ListView中添加了一些按钮和图像。

我的文件结构是:

layout
   [1] album ->List View
   [2] album_list -> Button

那么我如何创建Button对象呢?

我的代码是:

album.xml

<GridLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:columnCount="1" >

    <ListView
        android:id="@android:id/list"
        android:layout_width="match_parent"
        android:layout_column="0"
        android:layout_gravity="left|top"
        android:layout_row="0" >
    </ListView>
</GridLayout>

album_list.xml

<RelativeLayout
            android:id="@+id/RelativeLayout001"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:columnCount="2"
            android:orientation="horizontal" >



            <Button
                android:id="@+id/btn_eng"
                style="?android:attr/buttonStyleSmall"
                android:layout_width="100px"
                android:layout_height="31px"
                android:layout_marginLeft="11dp"
                android:layout_marginRight="17dp"
                android:layout_marginBottom="5dp"
                android:layout_marginTop="35dp"
                android:layout_alignTop="@+id/btn_hindi"                    
                android:layout_alignBottom="@+id/ImageView12"
                android:layout_alignLeft="@+id/ImageView12"
                android:background="@drawable/normal"
                android:text="ENG"
                android:textColor="@android:color/white" />

            <TextView
                android:id="@+id/tv_albumname"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/tv_go"
                android:layout_alignTop="@+id/iv_album_image"
                android:layout_marginLeft="2dp"
                android:layout_marginTop="2dp"
                android:text="Album Name"
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:textColor="@android:color/white" />

            <Button
                android:id="@+id/btn_hindi"
                style="?android:attr/buttonStyleSmall"
                android:layout_width="100px"
                android:layout_height="31px"
                android:layout_marginTop="7dp"
                android:layout_marginRight="17dp"                   
                android:layout_alignTop="@+id/ImageView12"                  
                android:layout_alignLeft="@+id/btn_eng"
                android:background="@drawable/normal"
                android:text="HINDI"

                android:textColor="@android:color/white" />

        </RelativeLayout>

相册.java

Album_List_Custom_Adapter adapter =
            new Album_List_Custom_Adapter(getApplicationContext(), albumList);      
    lv.setAdapter(adapter);

Album_List_Custom_Adapter.java

private Context context;
ArrayList<HashMap<String, String>> listAlbum;

ViewHolder vholder;

private OnClickListener listener;


public Album_List_Custom_Adapter(Context context, ArrayList<HashMap<String, String>> albumList) 
{
    this.context = context;     
    this.listAlbum=albumList;
}

@Override
public int getCount() 
{
    return listAlbum.size();
}

@Override
public Object getItem(int position) 
{
    return null;
}

@Override
public long getItemId(int position) 
{
    return 0;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) 
{
    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);   
    View vi=convertView;

    if (convertView == null) 
    {           
        vi = inflater.inflate(R.layout.home_list_model, null);
        vholder = new ViewHolder();

        vholder.hindi=(Button)vi.findViewById(R.id.btn_hindi);
        vholder.eng=(Button)vi.findViewById(R.id.btn_eng);                      

        vholder.tv_album_name = (TextView) vi.findViewById(R.id.tv_albumname);

        vi.setTag(vholder);
    }
    else 
    {        
        vholder = (ViewHolder) (vi.getTag());
    }

    vholder.hindi.setOnClickListener(new OnClickListener() 
    {
        @Override
        public void onClick(View v) 
        {
            vholder.hindi.setBackgroundResource(R.drawable.selected);
            vholder.eng.setBackgroundResource(R.drawable.normal);
        }
    });

    vholder.hindi.setOnClickListener(new OnClickListener() 
    {
        @Override
        public void onClick(View v) 
        {
            v.setBackgroundResource(R.drawable.selected);
            vholder.eng.setBackgroundResource(R.drawable.normal);
        }
    });

    vholder.eng.setOnClickListener(new OnClickListener() 
    {
        @Override
        public void onClick(View v) 
        {
            v.setBackgroundResource(R.drawable.selected);
            vholder.hindi.setBackgroundResource(R.drawable.normal);
        }
    });

    vholder.tv_album_name.setText(listAlbum.get(position).get("album"));

    return vi;
} 

static class ViewHolder 
{
    TextView tv_album_name;
    Button eng, hindi;
}
皮尤什

您必须在要扩展列表项布局的适配器中创建按钮对象。

喜欢

  Button b = (Button)yourViewobject.findViewById(R.id.button1);

现在为此实现onClick事件

  b.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

        }
    });

编辑:使用此。名为mybutton.xml的可绘制文件夹中创建一个自定义文件

   <?xml version="1.0" encoding="utf-8"?>
   <selector xmlns:android="http://schemas.android.com/apk/res/android">

   <item android:drawable="@drawable/selected" android:state_selected="true"></item>

   <item android:drawable="@drawable/normal"></item>

   </selector>

现在,只需在您的自定义布局文件中为两个按钮设置背景。

   android:background="@drawable/mybutton" // for Hindi Button

和英文按钮一样。

现在也从适配器中删除onClick事件方法。

需要改变..

    <Button
            android:id="@+id/btn_eng"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="100px"
            android:layout_height="31px"
            android:layout_marginLeft="11dp"
            android:layout_marginRight="17dp"
            android:layout_marginBottom="5dp"
            android:layout_marginTop="35dp"
            android:clickable = "true"
            android:focusable = "true"
            android:layout_alignTop="@+id/btn_hindi"                    
            android:layout_alignBottom="@+id/ImageView12"
            android:layout_alignLeft="@+id/ImageView12"
            android:background="@drawable/mybutton"
            android:text="ENG"
            android:textColor="@android:color/white" />

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在布局中为另一个片段使用片段xml标签?

来自分类Dev

如何在scrollview中膨胀另一个xml布局

来自分类Dev

如何在scrollview中膨胀另一个xml布局

来自分类Dev

如何在Android中的另一个线性布局下面设置一个线性布局

来自分类Dev

如何在Android中的另一个线性布局下面设置一个线性布局

来自分类Dev

如何在一个目录中创建空的txt文件,以反映另一个目录中的文件?

来自分类Dev

如何使用一个xml文件中的信息在C#中创建另一个?

来自分类Dev

java - 如何在另一个类中创建一个类的对象,反之亦然?

来自分类Dev

从JavaScript中的另一个对象创建对象

来自分类Dev

在另一个对象中创建的模拟对象

来自分类Dev

如何在Android中的另一个视图上创建一个浮动视图

来自分类Dev

在另一个布局android中查看viewpager

来自分类Dev

如何在另一个 json 中创建一个 json?

来自分类Dev

如何在另一个文件目录中的另一个脚本中导入 Python 文件?

来自分类Dev

如何在 ViewPager 中更改另一个布局的值

来自分类Dev

如何在一个文件夹中为另一个文件夹中的多个文件创建符号链接

来自分类Dev

如何在JavaScript中的另一个对象中查找具有属性的对象

来自分类Dev

如何在另一个(或div)中运行/保存一个HTML文件?

来自分类Dev

如何在另一个python函数中执行一个python文件?

来自分类Dev

访问在另一个类中创建的对象

来自分类Dev

如何在一个文件中调用一个声明的变量到另一个文件?

来自分类Dev

在另一个.cpp文件中使用main.cpp中创建的类型的对象

来自分类Dev

Javascript:如果位于另一个文件中,则无法创建新对象

来自分类Dev

JavaScript从另一个文件中创建自定义对象以进行测试

来自分类Dev

如何在android中的ViewModel中从一个LiveData对象获取数据到另一个对象?

来自分类Dev

如何在 Python 中从另一个对象中减去一个日期对象

来自分类Dev

如何在Android的另一个模块中访问一个模块的视图?

来自分类Dev

如何在angularjs中在一个文件中定义常量并在另一个文件中访问

来自分类Dev

如何在angularjs中在一个文件中定义常量并在另一个文件中访问

Related 相关文章

  1. 1

    如何在布局中为另一个片段使用片段xml标签?

  2. 2

    如何在scrollview中膨胀另一个xml布局

  3. 3

    如何在scrollview中膨胀另一个xml布局

  4. 4

    如何在Android中的另一个线性布局下面设置一个线性布局

  5. 5

    如何在Android中的另一个线性布局下面设置一个线性布局

  6. 6

    如何在一个目录中创建空的txt文件,以反映另一个目录中的文件?

  7. 7

    如何使用一个xml文件中的信息在C#中创建另一个?

  8. 8

    java - 如何在另一个类中创建一个类的对象,反之亦然?

  9. 9

    从JavaScript中的另一个对象创建对象

  10. 10

    在另一个对象中创建的模拟对象

  11. 11

    如何在Android中的另一个视图上创建一个浮动视图

  12. 12

    在另一个布局android中查看viewpager

  13. 13

    如何在另一个 json 中创建一个 json?

  14. 14

    如何在另一个文件目录中的另一个脚本中导入 Python 文件?

  15. 15

    如何在 ViewPager 中更改另一个布局的值

  16. 16

    如何在一个文件夹中为另一个文件夹中的多个文件创建符号链接

  17. 17

    如何在JavaScript中的另一个对象中查找具有属性的对象

  18. 18

    如何在另一个(或div)中运行/保存一个HTML文件?

  19. 19

    如何在另一个python函数中执行一个python文件?

  20. 20

    访问在另一个类中创建的对象

  21. 21

    如何在一个文件中调用一个声明的变量到另一个文件?

  22. 22

    在另一个.cpp文件中使用main.cpp中创建的类型的对象

  23. 23

    Javascript:如果位于另一个文件中,则无法创建新对象

  24. 24

    JavaScript从另一个文件中创建自定义对象以进行测试

  25. 25

    如何在android中的ViewModel中从一个LiveData对象获取数据到另一个对象?

  26. 26

    如何在 Python 中从另一个对象中减去一个日期对象

  27. 27

    如何在Android的另一个模块中访问一个模块的视图?

  28. 28

    如何在angularjs中在一个文件中定义常量并在另一个文件中访问

  29. 29

    如何在angularjs中在一个文件中定义常量并在另一个文件中访问

热门标签

归档