Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android自定义列表视图,水平显示图像和文本_Java_Android_Android Gallery - Fatal编程技术网

Java Android自定义列表视图,水平显示图像和文本

Java Android自定义列表视图,水平显示图像和文本,java,android,android-gallery,Java,Android,Android Gallery,首先,很抱歉沟通不畅,我正在使用自定义阵列适配器,我的应用程序中正在显示gridview控件中的图像和名称列表。这些图像和名称来自sql server数据库,现在显示所有图像绑定并显示到gridview,我希望图像显示幻灯片类型,即单击图像幻灯片后第一列显示3个图像,然后显示下3个图像。。谁来帮帮我 我的代码是: inquiryfrm.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="

首先,很抱歉沟通不畅,我正在使用自定义阵列适配器,我的应用程序中正在显示gridview控件中的图像和名称列表。这些图像和名称来自sql server数据库,现在显示所有图像绑定并显示到gridview,我希望图像显示幻灯片类型,即单击图像幻灯片后第一列显示3个图像,然后显示下3个图像。。谁来帮帮我

我的代码是:

inquiryfrm.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>
4.1.2.2适配器

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;

    }
公共类查询ArrayAdapter扩展ArrayAdapter{
ArrayList itemlist=新建ArrayList();
私人语境;
连接类连接类;
公共查询数组适配器(ArrayList对象、上下文){
超级(上下文、R.layout.ImageTemplate、对象);
this.itemlist=对象;
this.context=context;
//visitorlist=对象;
}
@凌驾
public int getCount(){
返回super.getCount();
}
@凌驾
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
如果(convertview==null){//这是一个新的视图,我们将膨胀新的布局
LayoutFlater充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
convertview=充气机。充气(R.layout.ImageTemplate,父项,false);
}
connectionClass=新的connectionClass();
final TextView txtitem_name=(TextView)convertview.findViewById(R.id.txtitem_name);
final TextView txtregidno=(TextView)convertview.findViewById(R.id.txtregidno);
最终ImageView imageview2=(ImageView)convertview.findViewById(R.id.imageview2);
最终查询项objitem=itemlist.get(位置);
setImageBitmap(objitem.getItemimg());
txtitem_name.setText(objitem.getItemname());
txtregidno.setText(String.valueOf(objitem.getReg_id());
//txtregidno.setVisibility(View.GONE);
imageview2.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//ImageView imageview2=(ImageView)v;
字符串idval=txtregidno.getText().toString();
/*int id=Integer.parseInt(String.valueOf(idval));
zoomImageFromThumb(图像视图2,id)*/
}
});
返回视图;
}
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;

        }
    }
公开课查询扩展片段{
多溴二苯醚;
GridView-GridView-img;
连接类连接类;
国际区域组织;
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
视图根视图=充气机。充气(R.layout.inquiryform,container,false);
connectionClass=新的connectionClass();
gridviewimg=(GridView)rootView.findViewById(R.id.gridviewimg);
Fetch fe=新Fetch();
fe.执行(“”);
返回rootView;
}
公共类获取扩展异步任务{
字符串z=“”;
字符串ownid;
ArrayList visitorList=新建ArrayList();
@凌驾
受保护的void onPreExecute(){
pbd=新建进度对话框(getActivity());
设置消息(“请稍候…”);
pbd.setCancelable(假);
pbd.show();
}
@凌驾
受保护的void onPostExecute(字符串r){
//pbbar.setVisibility(View.GONE);
if(pbd.isShowing())
pbd.discouse();
如果(r!=“空”){
Toast.makeText(getActivity(),r,Toast.LENGTH_SHORT).show();
}
InquiryArrayAdapter myAdapter=新的InquiryArrayAdapter(visitorList,getActivity());
myAdapter.notifyDataSetChanged();
gridviewimg.setAdapter(myAdapter);
//Toast.makeText(getActivity(),r,Toast.LENGTH_SHORT).show();
}
@凌驾
受保护的字符串doInBackground(字符串…参数){
试一试{
Connection con=connectionClass.CONN();
如果(con==null){
z=“与SQL server连接时出错”;
}否则{//
字符串查询=”;
query=“从FB\U反馈中选择*”;
PreparedStatement ps2=con.prepareStatement(查询);
ResultSet rs2=ps2.executeQuery();
ArrayList data1=新的ArrayList();
while(rs2.next()){
//Reg_Id=rs.getInt(“Id”);
RegIdNo=rs2.getInt(“id”);
字符串r=rs2.getString(“照片”);
//将图像字符串转换为位图
字节[]decodeString=Base64.decode(r,Base64.DEFAULT);
位图decodeB位图=BitmapFactory.decodeByteArray(decodeString,0,decodeString.length);
添加(新的查询项(“项目名称:”+rs2.getString(“反馈”),解码位图,RegIdNo));
//  }
//z=“成功”;
}
如果(RegIdNo==0){
z=“无访客数据”;
}否则{
z=“空”;
}
}
}捕获(例外情况除外){
z=例如toString();
}
返回z;
}
}

像下面的格式一样需要

你的问题是不可理解的。据我所知,尝试使用

嘿,你可以使用recyclerview来实现这一点。我只想将gridview列表显示为自定义列表,即在将另外3个图像显示滑动到屏幕前面后显示3个图像查看此示例
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;

    }
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;

        }
    }