美文网首页
安卓 实现可自定义行的表格ListView控件

安卓 实现可自定义行的表格ListView控件

作者: 风的影子XL | 来源:发表于2019-02-25 21:36 被阅读0次

    效果图如下

    效果图如下:安卓 实现可自定义行的表格ListView控件

    ** 实现思路:通过继承BaseAdapter实现自定义横向行数,可并列n个TextView。 **

    MainActivity.java

    public class MainActivity extends Activity

    {

    ListView listview;

        /** Called when the activity is first created. */

        @Override

        public void onCreate(Bundle savedInstanceState)

    {

            super.onCreate(savedInstanceState);

            setContentView(R.layout.main);

      listview = (ListView) findViewById(R.id.mainListView);

      TableAdapter adapter = new TableAdapter(this);

      adapter.add(new String[]{"查看详情","联系客服"});

      adapter.add(new String[]{"订单完成","修理清单","预约"});

      adapter.add(new String[]{"类型","数量","单价"});

      listview.setAdapter(adapter);

        }

    }

    TableAdapter.java

    public class TableAdapter extends BaseAdapter

    {

    private List<String[]> mData;

    private Context context;

    private LayoutInflater mInflater;

    public TableAdapter(Context context)

    {

    this.mInflater = LayoutInflater.from(context);

    this.mData=new ArrayList<String[]>();

    this.context = context;

    }

    public void onClick(View p1)

    {

    mData.remove( p1.getId());

    notifyDataSetChanged();

    }

    public void add(String text[])

    {

    mData.add(text);

    }

    public void remove(int pos)

    {

    mData.remove(pos);

    }

    public void clear()

    {

    mData.clear();

    }

    public int getCount()

    {

    return mData.size();

    }

    public String[] getItem(int arg0)

    {

    return mData.get(arg0);

    }

    public long getItemId(int arg0)

    {

    return arg0;

    }

    //显示按钮

    public void isVisibility()

    {

    }

    public List<String[]>getData()

    {

    return mData;

    }

    public View getView(int position, View convertView, ViewGroup parent)

    {

            LinearLayout layout_item = new LinearLayout(context);

    layout_item.setOrientation(LinearLayout.HORIZONTAL);

    layout_item.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE);

    layout_item.setDividerDrawable(context.getDrawable(R.drawable.divi_h));

    for(String text:mData.get(position)){

    TextView textView = new TextView(context);

    textView.setGravity(Gravity.CENTER);

    LayoutParams layoutparams = new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT,1.0f);

    textView.setText(text);

    textView.setTextSize(18);

    layout_item.addView(textView,layoutparams);

    }

    return layout_item;

    }

    }

    drawable/divi_h.xml

    <?xml version="1.0" encoding="utf-8"?>

    <shape xmlns:android="http://schemas.android.com/apk/res/android">

        <solid android:color="#a0a0a0" />

        <size android:width="1px" />

    </shape>

    layout/main.xml

    <?xml version="1.0" encoding="utf-8"?>

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

        android:layout_width="fill_parent"

        android:layout_height="fill_parent"

        android:gravity="center"

        android:orientation="vertical" >

    <ListView

    android:id="@+id/mainListView"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    />

    </LinearLayout>

    相关文章

      网友评论

          本文标题:安卓 实现可自定义行的表格ListView控件

          本文链接:https://www.haomeiwen.com/subject/opunyqtx.html