如何使用Hashmap为自定义列表视图创建自定义适配器

保罗

我如何为该xml创建自定义适配器。有人可以指导我如何创建自定义适配器,也可以给我提供有关如何执行此操作的示例代码。请帮助我,我需要学习如何创建自定义适配器。请帮助我。提前致谢。

这是我的MainActivity.java

package com.example.work.listviewadapter;

import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ListView;
import android.widget.SimpleAdapter;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;


public class MainActivity extends ActionBarActivity {

private static final String PRODUCTLIST_URL ="http://192.168.56.1/productlist.php";


private ProgressDialog pDialog;

public  static  final JSONParser jParser = new JSONParser();

private static final String GET_PRODUCT = "message";

private static final String GET_ID = "ID";

private static final String GET_BRAND = "Brand";

private static final String GET_CATEGORY = "Category";

private static final String GET_DESCRIPTION = "Description";

private static final String GET_CODE = "Code";

private static final String GET_QUANTITY = "Quantity";

private static final String GET_UNIT = "Unit";

private static final String GET_UNITPRICE = "Unitprice";

private JSONArray order = null;

ListView list;
private ArrayList<HashMap<String, String>> orderlist;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.productlist);

new LoadComments().execute();


}


public void updateJSONdata() {

    orderlist = new ArrayList<HashMap<String, String>>();


    JSONObject json = jParser.getJSONFromUrl(PRODUCTLIST_URL);


    try {


        order = json.getJSONArray(GET_PRODUCT);

        for (int i = 0; i < order.length(); i++) {

            JSONObject c = order.getJSONObject(i);

            String id = c.getString(GET_ID);

            String brand = c.getString(GET_BRAND);

            String category = c.getString(GET_CATEGORY);

            String description = c.getString(GET_DESCRIPTION);

            String code = c.getString(GET_CODE);

            String quantity = c.getString(GET_QUANTITY);

            String unit = c.getString(GET_UNIT);

            String unitprice = c.getString(GET_UNITPRICE);



            HashMap<String, String> map = new HashMap<String, String>();

            map.put(GET_ID,id);

            map.put(GET_BRAND, brand);

            map.put(GET_CATEGORY, category);

            map.put(GET_DESCRIPTION, description);

            map.put(GET_CODE, code);

            map.put(GET_QUANTITY, quantity);

            map.put(GET_UNIT, unit);

            map.put(GET_UNITPRICE, unitprice);


            orderlist.add(map);

            }

    } catch (JSONException e) {

        e.printStackTrace();

    }

}

private void updateList() {

    //this is for my custom listview

}

final  public class LoadComments extends AsyncTask<Void, Void, Boolean> {

    @Override

    protected void onPreExecute() {

        super.onPreExecute();

        pDialog = new ProgressDialog(MainActivity.this);

        pDialog.setMessage("Loading Order...");

        pDialog.setIndeterminate(false);

        pDialog.setCancelable(true);

        pDialog.show();

    }

    @Override

    protected Boolean doInBackground(Void... arg0) {

        //we will develop this method in version 2

        updateJSONdata();

        return null;

    }

    @Override

    protected void onPostExecute(Boolean result) {

        super.onPostExecute(result);

        pDialog.dismiss();

        //we will develop this method in version 2

        updateList();

    }

}

}

这是我的自定义ListView。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="5dip"
android:background="@drawable/list_selector"
>


<TextView
    android:id="@+id/Quantity"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="10000"
    android:textSize="24dip"
    android:textStyle="bold"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:layout_marginTop="24dp"
    android:layout_marginRight="51dp"
    >
</TextView>

<TextView
    android:id="@+id/Unit"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Gal."
    android:layout_alignParentRight="true"
    android:layout_marginTop="26dp"
    android:textSize="20dp"
    android:layout_marginRight="15dp"
    />

<TextView
    android:id="@+id/Description"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="10dp"
    android:text="White"
    android:textColor="#040404"
    android:typeface="sans"
    android:textSize="20dip"
    android:textStyle="bold"/>

<TextView
    android:id="@+id/Code"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Wpu-01"
    android:layout_marginTop="2dp"
    android:layout_below="@+id/Description"
    android:layout_marginLeft="10dp"/>
<TextView
    android:id="@+id/Brand"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/Code"
    android:layout_marginLeft="10dp"
    android:layout_marginTop="2dp"
    android:text="Weber"/>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Urethane"
    android:layout_below="@+id/Code"
    android:layout_marginTop="2dp"
    android:layout_toRightOf="@+id/Brand"
    android:layout_marginLeft="5dp"
    android:id="@+id/Category" />
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/Category"
    android:text="P"
    android:layout_marginLeft="12dp"
    android:paddingRight="5dp"
    android:layout_marginTop="2dp"
    android:layout_marginBottom="2dp"
    android:textStyle="italic"
    android:id="@+id/P"
    />
<TextView
    android:id="@+id/Price"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="10000.00"
    android:layout_below="@+id/Brand"
    android:layout_toRightOf="@+id/P"
    android:layout_marginTop="2dp"
    android:layout_marginLeft="2dp"
    />
<TextView
    android:id="@+id/ID"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="11"
    android:layout_alignParentRight="true"
    android:visibility="invisible"
    />
</RelativeLayout>

这对于列表视图

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


<EditText
    android:id="@+id/search"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:hint="Search"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:singleLine="true"/>

<ListView
    android:layout_below="@+id/search"
    android:id="@android:id/list"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="#fff"
    android:divider="#ff5873ff"
    android:dividerHeight="3dp" />

德吉什帕特尔

您可以设计BaseAdapter下面的代码,也可以使用ViewHolder模式优化列表视图的性能

private class MyAdapter extends BaseAdapter{
    private LayoutInflater mlayoutInflater;

    public MyAdapter(Context context) {
        mlayoutInflater = LayoutInflater.from(context);  //Dynamic layout mapping
    }

    @Override
    public int getCount() {
        return orderlist.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) {
        convertView = mlayoutInflater.inflate(R.layout.listitem, null);  //  According to the layout of the document to instantiate view
        TextView tv = (TextView)convertView.findViewById(R.id.textView);
        tv.setText(orderlist.get(position).get(GET_BRAND).toString());
        return convertView;
    }
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何通过自定义适配器为列表视图动态设置imageView源?

来自分类Dev

如何为列表视图创建自定义适配器?获取RessourceNotFoundException

来自分类Dev

使用自定义适配器视图时,如何使列表视图可点击?

来自分类Dev

自定义适配器不显示列表视图

来自分类Dev

如何使用自定义列表适配器显示listView为空

来自分类Dev

如何使用自定义列表适配器显示listView为空

来自分类Dev

使用自定义适配器和视图持有器的Android列表视图

来自分类Dev

在自定义列表视图适配器中使用多个视图

来自分类Dev

如何在自定义列表视图的自定义适配器类中传递多个数组值?

来自分类Dev

列表视图中的页脚按钮,如何从自定义列表适配器获取价值

来自分类Dev

如何使用自定义数组适配器删除自定义列表中的特定列表项(列表行)?

来自分类Dev

如何使用自定义数组适配器删除自定义列表中的特定列表项(列表行)?

来自分类Dev

使用外部XML文件进行自定义列表视图适配器?

来自分类Dev

我无法使用自定义适配器数据清除列表视图?

来自分类Dev

使用自定义列表视图适配器和不同布局的结果不正确

来自分类Dev

对于使用一个自定义适配器的多个列表视图

来自分类Dev

ViewHolder使用自定义适配器创建联系人列表

来自分类Dev

自定义视图的适配器中的NullPointerException

来自分类Dev

自定义适配器视图(带有图片)

来自分类Dev

如何使用自定义适配器将数组中的值设置为列表视图,并为行赋予不同的颜色

来自分类Dev

如何使用基本适配器在android中创建自定义过滤器?

来自分类Dev

如何使用 JSON 数据创建自定义微调适配器?

来自分类Dev

自定义适配器的问题

来自分类Dev

ListView的自定义适配器

来自分类Dev

自定义ListView的适配器

来自分类Dev

自定义旋转适配器显示空列表

来自分类Dev

自定义列表适配器中的 getApplicationContext()

来自分类Dev

Fragment 中的自定义列表适配器

来自分类Dev

将onClickListener设置为自定义适配器

Related 相关文章

  1. 1

    如何通过自定义适配器为列表视图动态设置imageView源?

  2. 2

    如何为列表视图创建自定义适配器?获取RessourceNotFoundException

  3. 3

    使用自定义适配器视图时,如何使列表视图可点击?

  4. 4

    自定义适配器不显示列表视图

  5. 5

    如何使用自定义列表适配器显示listView为空

  6. 6

    如何使用自定义列表适配器显示listView为空

  7. 7

    使用自定义适配器和视图持有器的Android列表视图

  8. 8

    在自定义列表视图适配器中使用多个视图

  9. 9

    如何在自定义列表视图的自定义适配器类中传递多个数组值?

  10. 10

    列表视图中的页脚按钮,如何从自定义列表适配器获取价值

  11. 11

    如何使用自定义数组适配器删除自定义列表中的特定列表项(列表行)?

  12. 12

    如何使用自定义数组适配器删除自定义列表中的特定列表项(列表行)?

  13. 13

    使用外部XML文件进行自定义列表视图适配器?

  14. 14

    我无法使用自定义适配器数据清除列表视图?

  15. 15

    使用自定义列表视图适配器和不同布局的结果不正确

  16. 16

    对于使用一个自定义适配器的多个列表视图

  17. 17

    ViewHolder使用自定义适配器创建联系人列表

  18. 18

    自定义视图的适配器中的NullPointerException

  19. 19

    自定义适配器视图(带有图片)

  20. 20

    如何使用自定义适配器将数组中的值设置为列表视图,并为行赋予不同的颜色

  21. 21

    如何使用基本适配器在android中创建自定义过滤器?

  22. 22

    如何使用 JSON 数据创建自定义微调适配器?

  23. 23

    自定义适配器的问题

  24. 24

    ListView的自定义适配器

  25. 25

    自定义ListView的适配器

  26. 26

    自定义旋转适配器显示空列表

  27. 27

    自定义列表适配器中的 getApplicationContext()

  28. 28

    Fragment 中的自定义列表适配器

  29. 29

    将onClickListener设置为自定义适配器

热门标签

归档