繁体   English   中英

带有图像和文本的Android自定义ListView

[英]Android Custom ListView with Images and Text in horizantally

首先很抱歉沟通不畅,我使用了自定义数组适配器,并且图像和名称列表正在我的应用程序中显示gridview控件。图像和名称来自sql server数据库,现在显示所有图像绑定并显示到gridview到显示幻灯片类型的图像,即第一列显示3张图像,然后单击图像幻灯片到接下来的3张图像显示。任何人都可以帮助我。

我的代码是:

enquiryfrm.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Select Name"/>
    <Spinner
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

    <ScrollView
        android:id="@+id/questionListSV"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:fillViewport="true">


    <GridView
        android:id="@+id/gridviewimg"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:numColumns="3"
        android:horizontalSpacing="10dp"
        android:scrollbars="horizontal"
        android:scrollbarAlwaysDrawHorizontalTrack="true"
        android:scrollbarAlwaysDrawVerticalTrack="true"
        android:stretchMode="none"
        android:columnWidth="100dp"
        android:paddingBottom="60dp"/>   
    </ScrollView>
    <Spinner
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

    </Spinner>

</LinearLayout>

2.enquiryaimagetemplate.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="1dp"
    android:orientation="vertical">
    <ImageView
        android:id="@+id/imageview2"
        android:layout_width="120dp"
        android:layout_height="120dp"
        android:scaleType="fitXY"
        android:layout_marginRight="10dp"
        android:src="@drawable/not_available" />
    <TextView
        android:id="@+id/txtitem_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:textSize="15sp" >
    </TextView>
    <TextView
        android:id="@+id/txtregidno"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:textSize="15sp" >
    </TextView>
</LinearLayout>

3.enquiryitems.java

public class enquiryItems {
        String itemname;
        int Reg_id;
        Bitmap itemimg;
        public enquiryItems(String itemname,Bitmap itemimg,int Reg_id){
            this.itemname=itemname;
            this.itemimg=itemimg;
            this.Reg_id=Reg_id;
        }

        public String getItemname(){
            return itemname;
        }
        public Bitmap getItemimg(){return itemimg;}
        public int getReg_id(){return  Reg_id;}
    }

4.enquiryarrayadapter

public class EnquiryArrayadapter extends ArrayAdapter<enquiryItems> {

    ArrayList<enquiryItems> itemlist = new ArrayList<>();
    private Context context;
    ConnectionClass connectionClass;
    public EnquiryArrayadapter(ArrayList<enquiryItems> objects,Context context)      {
        super(context,R.layout.enquiryaimagetemplate,objects);
        this.itemlist=objects;
        this.context=context;
        //visitorlist=objects;
    }
    @Override
    public int getCount() {

        return super.getCount();
    }
    @Override
    public View getView(final int position, View convertview, ViewGroup parent){
        if (convertview == null) { // This a new view we inflate the new layout
            LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertview = inflater.inflate(R.layout.enquiryaimagetemplate, parent, false);
        }

        connectionClass = new ConnectionClass();

        final TextView txtitem_name=(TextView)convertview.findViewById(R.id.txtitem_name);
        final TextView txtregidno = (TextView) convertview.findViewById(R.id.txtregidno);
        final ImageView imageview2 = (ImageView) convertview.findViewById(R.id.imageview2);
        final enquiryItems objitem=itemlist.get(position);
        imageview2.setImageBitmap(objitem.getItemimg());
        txtitem_name.setText(objitem.getItemname());
        txtregidno.setText(String.valueOf(objitem.getReg_id()));
      //  txtregidno.setVisibility(View.GONE);

        imageview2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //ImageView imageview2 = (ImageView) v;
                String idval = txtregidno.getText().toString();
               /* int id=Integer.parseInt(String.valueOf(idval));
                zoomImageFromThumb(imageview2, id);*/
            }
        });
        return convertview;

    }

5.enquiry.java

public class Enquiry  extends Fragment {
    ProgressDialog pbd;
    GridView gridviewimg;
    ConnectionClass connectionClass;
    int RegIdNo;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.enquiryfrm, container, false);
        connectionClass=new ConnectionClass();
        gridviewimg=(GridView)rootView.findViewById(R.id.gridviewimg);
        Fetch fe=new Fetch();
        fe.execute("");
        return rootView;
    }

    public class Fetch extends AsyncTask<String, String, String> {

        String z = "";
        String ownid;
        ArrayList<enquiryItems> visitorList=new ArrayList<>();

        @Override
        protected void onPreExecute() {
            pbd=new ProgressDialog(getActivity());
            pbd.setMessage("Please Wait...");
            pbd.setCancelable(false);
            pbd.show();
        }
        @Override
        protected void onPostExecute(String r) {

            // pbbar.setVisibility(View.GONE);
            if (pbd.isShowing())
                pbd.dismiss();
            if(r!="empty"){
                Toast.makeText(getActivity(), r, Toast.LENGTH_SHORT).show();
            }
            EnquiryArrayadapter myAdapter=new EnquiryArrayadapter(visitorList,getActivity());
            myAdapter.notifyDataSetChanged();
            gridviewimg.setAdapter(myAdapter);
            //  Toast.makeText(getActivity(), r, Toast.LENGTH_SHORT).show();

        }
        @Override
        protected String doInBackground(String... params) {
            try {
                Connection con = connectionClass.CONN();
                if (con == null) {
                    z = "Error in connection with SQL server";
                } else {//
                    String query="";
                        query = "select * from FB_Feedback";


                    PreparedStatement ps2 = con.prepareStatement(query);
                    ResultSet rs2 = ps2.executeQuery();
                    ArrayList data1 = new ArrayList();
                    while (rs2.next()) {

                        //Reg_Id=rs.getInt("Id");
                        RegIdNo = rs2.getInt("id");
                        String r = rs2.getString("Photo");
                        //Convertong Images string to bitmap
                        byte[] decodeString = Base64.decode(r, Base64.DEFAULT);
                        Bitmap decodebitmap = BitmapFactory.decodeByteArray(decodeString, 0, decodeString.length);
                        visitorList.add(new enquiryItems("Item Name : "+rs2.getString("Feedback"),decodebitmap,RegIdNo));
                        //  }
                        //  z="Success";
                    }
                    if (RegIdNo==0){
                        z="No Visitor data";
                    }else {
                        z="empty";
                    }

                }

            } catch (Exception ex) {
                z = ex.toString();

            }
            return z;

        }
    }

像以下格式一样,需要在此处输入图片说明

您的问题无法理解。 据我了解,尝试使用水平listview。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM