当前位置: 首页 > 知识库问答 >
问题:

自定义列表适配器类中的错误

郎成龙
2023-03-14
    class viewticket extends AsyncTask<String, Void, String> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            pdialog = new ProgressDialog(UserLogedIn.this);
            pdialog.setMessage("Loading....");
            pdialog.setIndeterminate(false);
            pdialog.setCancelable(false);
            pdialog.show();
        }

        @Override
        protected String doInBackground(String... params)  {
            List<NameValuePair> param = new ArrayList<NameValuePair>();
            param.add(new BasicNameValuePair("userid", u_id));


            ServiceHandler sh = new ServiceHandler();

            // Making a request to url and getting response
            String jsonStr = sh.makeServiceCall(URLMyTicket, ServiceHandler.POST, param);
            Log.d("Response: ", "> " + jsonStr);
            if (jsonStr != null)

            {
                try {

                    contacts = new JSONArray(jsonStr);
                    int a=contacts.length();
                    Log.v(TAG,""+a);
                    String[] id = new String[contacts.length()];
                    String[] prob = new String[contacts.length()];
                    String[] desc = new String[contacts.length()];
                    for (int i = 0; i < contacts.length(); i++) {
                        JSONObject c = contacts.getJSONObject(i);

                        String aa = c.getString(TAG_ID);
                        String bb = c.getString(TAG_PROB);
                        String cc = c.getString(TAG_DESC);

                        Log.v(TAG, "TAG_ID" + aa);
                        Log.v(TAG,"TAGPROB"+bb);
                        Log.v(TAG,"TAGDESC"+cc);
                        id[i] = aa;
                        prob[i]=bb;
                        desc[i]=cc;
                        Log.v(TAG, "aaaaa" + id[i]);
                        Log.v(TAG,"bbbbb"+prob[i]);
                        Log.v(TAG,"ccc"+desc[i]);
                        Ticket_adapter adapter=new Ticket_adapter(this,id,prob,desc);
                        lv.setAdapter(adapter);
                    }
                } catch (JSONException e) {
                  System.out.print("hiiiiiiiiiiii" );
                    e.printStackTrace();
                }
            }
            if(jsonStr==null)
            {
               // Toast.makeText(UserLogedIn.this, "hiiiiiiiiiiiiiiiiiiiii", Toast.LENGTH_SHORT).show();
            }
            return null;
        }
        @Override
        protected void onPostExecute(String  result) {
            super.onPostExecute(result);
            // Dismiss the progress dialog
            pdialog.hide();
            pdialog.dismiss();
        }

    }
    public class Ticket_adapter extends ArrayAdapter<String> {
    UserLogedIn.viewticket context;
    String[] id;
    String[] prob;
    String[] desc;


    public Ticket_adapter(UserLogedIn.viewticket context, String[] id,String[] prob,String[] desc) {
        super(context, R.id.list_item,id);//error cannot resolve method super
        this.context=context;
        this.id=id;
        this.prob=prob;
        this.desc=desc;
    }


    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater=context.getLayoutInflater();
        View rowView=inflater.inflate(R.layout.my_list, null, true);

        TextView idtxt=(TextView)convertView.findViewById(R.id.uid);
        TextView probtxt=(TextView)convertView.findViewById(R.id.prob);
        TextView desctxt=(TextView)convertView.findViewById(R.id.ticket);

        idtxt.setText(id[position]);
        probtxt.setText(prob[position]);
        desctxt.setText(desc[position]);


        return convertView;

    }
}

错误:

错误:(21,9)错误:找不到适合ArrayAdapter(UserLogedIn.ViewTicket,int,String[])的构造函数ArrayAdapter.ArrayAdapter(Context,int,int)不适用(参数不匹配;UserLogedIn.ViewTicket无法转换为上下文)构造函数ArrayAdapter.ArrayAdapter(Context,int,String[])不适用(参数不匹配;UserLogedIn.ViewTicket无法转换为上下文)构造函数ArrayAdapter.ArrayAdapter(Context,int,String[])

共有1个答案

匡翰
2023-03-14

1)需要在for循环之外创建适配器。

2)如果要在自定义适配器构造函数中调用super(),则需要传递一个上下文,而不是名为Context的对象。

因为从错误来看,userlogedin.viewticket不是上下文

 类似资料:
  • 主要内容:创建自定义适配器,注册自定义适配器,使用适配器Gson使用其内置适配器执行对象的序列化/反序列化。 它也支持自定义适配器。 让我们来讨论如何创建一个自定义适配器以及如何使用它。 创建自定义适配器 通过扩展类并传递目标类型的对象来创建自定义适配器。 重写读写方法分别执行自定义的反序列化和序列化。 注册自定义适配器 使用注册自定义适配器并使用创建一个Gson实例。参考以下实现代码 - 使用适配器 Gson现在将使用自定义适配器将Json文本转换为

  • Gson使用其内置适配器执行对象的序列化/反序列化。 它还支持自定义适配器。 我们将讨论如何创建自定义适配器以及如何使用它。 创建自定义适配器 通过扩展TypeAdapter类并将其传递给目标对象的类型来创建自定义适配器。 重写read和write方法以分别执行自定义反序列化和序列化。 class StudentAdapter extends TypeAdapter<Student> {

  • 我使用一个API,它以数组的形式返回数据,比如这个JSON字符串(我们称之为“任务”) 我想将这个响应解析为一个列表。所以我已经用生成的适配器创建了相应的数据类 我的改装服务是这样的 但我想使用容器类型,例如: 作为网络响应结果。这可能不创建自定义adpter或者我将需要创建一个自定义适配器并将其传递给moshi构建器吗?

  • 英文原文:http://emberjs.com/guides/models/customizing-adapters/ 在Ember Data中,处理与后台数据仓库通信的逻辑是通过Adapter来完成的。Ember Data适配器内置了一些关于REST API的假定。如果后台的实现与Ember Data假定的惯例不同,那么通过扩展缺省的适配器可能很容易的实现。 有时因为一些原因需要自定义适配器,例

  • Ember.js适配器指定如何在后端数据存储中保存数据,例如URL格式和REST API标头。 默认的Ember适配器包含一些REST API的内置假设。 这些假设有助于更轻松,更好地构建Web应用程序。 可以使用以下命令创建适配器 - ember generate adapter adapter-name 运行上面的命令时,它将显示以下行 - import DS from 'ember-dat

  • 问题内容: 下面的示例显示了一个类(Club),其中包含抽象类(成员)的集合。我对于是否需要TypeAdapter或JsonDeserializer才能使反序列化正常工作感到困惑。序列化在没有任何帮助的情况下就可以正常工作,但是反序列化会引发异常。为了说明这一点,我构建了以下“克隆”测试。如果有人能展示一个有效的例子,我将不胜感激。 头等舱 现在是抽象基类成员 以及成员的两个具体子类(金和银​​)