使用自定义行将listview转换为ListView

时间:2015-12-13 17:30:13

标签: android-studio android-listview

我正在尝试将基本列表视图转换为复杂的列表视图。我尝试通过创建产品适配器来做到这一点。我继续在超级部分上收到错误说"对象中的objects()无法应用"。我之前没有这样做过,我正在学习教程。

public class ProductAdapter {

ProductAdapter(Context context, String[] addProduct){
    super(context,R.layout.list_item, addProduct);
}
@Override
public View getView(int position,View convertView, ViewGroup parent){
    LayoutInflater momentsInflater = LayoutInflater.from(getContext());
    View customView = momentsInflater.inflate(R.layout.list_item, parent, false);

    ImageView imageView = (ImageView) customView.findViewById(R.id.imageView);
    TextView momentsText = (TextView) customView.findViewById(R.id.textViewName);
    ImageView momentsImage = (ImageView) customView.findViewById(R.id.imageView);



    }
};

MainActivity

public class MainActivity extends Activity {
    private ListView listView;
    private String[] details;
    public static ArrayList<Product> product = new ArrayList<>();
    boolean firstRun = true;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listView = (ListView) findViewById(R.id.listView);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle presses on the action bar items
        switch (item.getItemId()) {
            case R.id.action_AddProduct:
                startActivity(new Intent(MainActivity.this, Activity_addProduct.class));

            case R.id.action_Information:
                startActivity(new Intent(MainActivity.this, Activity_addProduct.class));
                return true;
            case R.id.action_Home:

                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }

    @Override
    protected void onResume() {
        super.onResume();
        DatabaseHandler db = new DatabaseHandler(this);
        String[] productStrings;
        if (firstRun) {
            String[] placeHolterStrings = {"", ""};
            productStrings = placeHolterStrings;
            firstRun = false;
        } else {
            product = db.getAllContacts();
            productStrings = new String [product.size()];

            for (int i = 0; i < product.size(); i++) {
                productStrings[i] = product.get(i).toString();
            }
        }

        ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, productStrings);
        listView.setAdapter(arrayAdapter);
        listView.setOnItemClickListener(

                new AdapterView.OnItemClickListener() {
                    @Override
                    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                    }
                }
        );
    }
}

副产品类

public class Product {
        private int id;
        private String productName;
        private String productModel;

        public Product(int id, String productName, String productModel) {
                this.id = id;
                this.productName = productName;
                this.productModel = productModel;
        }
        public Product() {
        }
        public int getId() {
                return id;
        }

        public void setId(int id) {
                this.id = id;
        }

        public String getProductName() {
                return productName;
        }

        public void setName(String productName) {
                this.productName = productName;
        }

        public String getProductModel() {
                return productModel;
        }

        public void setProductModel(String productModel) {
                this.productModel = productModel;
        }

        @Override
        public String toString() {
                return this.productName + " " + this.productModel;
        }

}

List_item.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="85dp"
        android:layout_height="85dp"
        android:background="@android:color/darker_gray"
        android:padding="8dp"
        android:layout_marginLeft="5dp"
        android:layout_marginTop="5dp"
        android:scaleType="centerCrop" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="30dp"
        android:layout_marginTop="20dp"
        android:orientation="vertical">

        <TextView
            android:id="@+id/textViewName"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="first + last name"
            android:textSize="16dp" />

        <TextView
            android:id="@+id/textViewDetail"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="8dp"
            android:text="details of the candidate"
            android:textSize="12dp" />

    </LinearLayout>

</LinearLayout>

复杂的列表视图如下所示:

enter image description here

0 个答案:

没有答案