Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.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 已将参数发送到同一类中的适配器_Java_Android - Fatal编程技术网

Java 已将参数发送到同一类中的适配器

Java 已将参数发送到同一类中的适配器,java,android,Java,Android,我有公共类StudioDetail(主类),在StudioDetail中我生成私有类SendFeedback,如下所示: private class SendfeedbackKelas extends AsyncTask<String, Void, String> { private static final String LOG_TAG = "CariKelas"; Bundle extras = getIntent().getExtras(); final

我有公共类StudioDetail(主类),在StudioDetail中我生成私有类SendFeedback,如下所示:

private class SendfeedbackKelas extends AsyncTask<String, Void, String> {
    private static final String LOG_TAG = "CariKelas";
    Bundle extras = getIntent().getExtras();
    final String token= extras.getString("TOKEN");
    final String idstudio= extras.getString("STUDIO_ID");
    @Override
    protected String doInBackground(String... params) {
        String date = params[0];
        Utils.log("params 1:" + date);
        // do above Server call here
        kelasstudioList = new ArrayList<KelasStudioModel>();
        String responseString = null;
        final String url_kelas_studio = Constant.URI_BASE_STUDIO + idstudio + "/class" + "?date=" + date + "&token=" + token;
        Utils.log("url kelas studio:"+ url_kelas_studio);
        try
        {
            runOnUiThread(new Runnable() {
                public void run() {
                    new JSONAsyncTask().execute(url_kelas_studio);
                    ListView listview = (ListView) findViewById(R.id.listView1);
                    adapter = new ClassSAdapter(context, R.layout.jadwalstudio_info, kelasstudioList);
                    listview.setAdapter(adapter);
                }
            });
        }
        catch (Exception e)
        {
            /*Toast.makeText(context,
                    "user not registered", Toast.LENGTH_SHORT).show();*/
            Log.e(LOG_TAG, String.format("Error during login: %s", e.getMessage()));
        }
        return "processing";
    }

    protected void onPostExecute(Boolean result) {
        //dialog.cancel();
    }
}
private class ClassSAdapter extends ArrayAdapter<KelasStudioModel> {
    final Context context = getContext();
    ArrayList<KelasStudioModel> kelasstudioList;
    LayoutInflater vi;
    int Resource;
    ViewHolder holder;

    public ClassSAdapter(Context context, int resource, ArrayList<KelasStudioModel> objects) {
        super(context, resource, objects);
        vi = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        Resource = resource;
        kelasstudioList = objects;
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View.OnClickListener listener1 = new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int position = (int)v.getTag();
                // do stuff based on position or kelasList.get(position)
                // you can call mActivity.startActivity() if you need
                final Dialog dialog = new Dialog(context);
                dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
                dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
                dialog.setContentView(R.layout.dialog_popup_pesan_kelas);
                closedialog = (ImageView) dialog.findViewById(R.id.closeDialog);
                // if button is clicked, close the custom dialog
                closedialog.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        dialog.dismiss();
                    }
                });
                /*studio_name.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Intent intent = new Intent(context, StudioDetail.class);
                        startActivity(intent);
                    }
                });*/
                dialog.show();
            }
        };
        View.OnClickListener listener2 = new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int position = (int)v.getTag();
                // do stuff based on position or kelasList.get(position)
                // you can call mActivity.startActivity() if you need
                final Dialog dialog = new Dialog(context);
                dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
                dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
                dialog.setContentView(R.layout.dialog_popup_pelatih);
                /*final String url_studio_image = Constant.URI_FRONTEND + "vendor_trainer/20150821052441-tanda-tanya.jpg";
                Utils.log("url_studio_image: " + url_studio_image);
                new DownloadImageTask((ImageView) dialog.findViewById(R.id.class_image_pelatih)).execute(url_studio_image);*/
                closedialog = (ImageView) dialog.findViewById(R.id.closeDialog);
                // if button is clicked, close the custom dialog
                closedialog.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        dialog.dismiss();
                    }
                });
                dialog.show();
            }
        };
        // convert view = design
        View v = convertView;
        if (v == null) {
            holder = new ViewHolder();
            v = vi.inflate(Resource, null);
            holder.kelas = (TextView) v.findViewById(R.id.kelas);
            holder.waktu = (TextView) v.findViewById(R.id.waktu);
            holder.pelatih = (TextView) v.findViewById(R.id.pelatih);
            // set OnClickListeners
            holder.kelas.setOnClickListener(listener1);
            holder.pelatih.setOnClickListener(listener2);
            v.setTag(holder);
        } else {
            holder = (ViewHolder) v.getTag();
        }
        //holder.imageview.setImageResource(R.drawable.promo_1);
        holder.kelas.setText(kelasstudioList.get(position).getKelas());
        holder.waktu.setText(kelasstudioList.get(position).getWaktu());
        holder.pelatih.setText(kelasstudioList.get(position).getPelatih());
        // set tags
        holder.kelas.setTag(position);
        holder.waktu.setTag(position);
        holder.pelatih.setTag(position);
        return v;

    }

    private class ViewHolder {
        public TextView kelas;
        public TextView waktu;
        public TextView pelatih;
    }
}
如何发送该参数

这里的信息是JSONAsynTask类:

class JSONAsyncTask extends AsyncTask<String, Void, Boolean> {

    ProgressDialog dialog;
    private static final String TAG_CLASSES = "classes";
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        dialog = new ProgressDialog(context);
        dialog.setMessage("Loading, please wait");
        dialog.setTitle("Connecting server");
        dialog.show();
        dialog.setCancelable(false);
    }

    @Override
    protected Boolean doInBackground(String... urls) {
        try {
            HttpGet httppost = new HttpGet(urls[0]);
            HttpClient httpclient = new DefaultHttpClient();
            HttpResponse response = httpclient.execute(httppost);

            // StatusLine stat = response.getStatusLine();
            int status = response.getStatusLine().getStatusCode();

            if (status == 200) {
                HttpEntity entity = response.getEntity();
                String responseAsText = EntityUtils.toString(entity);
                Utils.log("daftar isi classes: " + responseAsText);
                JSONObject jsonObj = new JSONObject(responseAsText);

                // Getting JSON Array node
                JSONArray classes = jsonObj.getJSONArray(TAG_CLASSES);

                for(int i=0;i<classes.length();i++){
                    //HashMap<String, String> promo = new HashMap<String, String>();
                    JSONObject object = classes.getJSONObject(i);
                    final String startdate=object.getString("startdate");
                    final String masterclass_name=Html.fromHtml((String) object.getString("masterclass_name")).toString();
                    final String enddate=object.getString("enddate");
                    final String trainer_name=Html.fromHtml((String) object.getString("trainer_name")).toString();

                    KelasStudioModel actor = new KelasStudioModel();
                    String starttime = parseDateToHis((String) object.getString("startdate")).toString();
                    String endtime = parseDateToHis((String) object.getString("enddate")).toString();
                    actor.setKelas(Html.fromHtml((String) object.getString("masterclass_name")).toString());
                    actor.setWaktu(starttime + "-" + endtime);
                    actor.setPelatih(object.getString("trainer_name"));
                    kelasstudioList.add(actor);
                }
                return true;
            }
        } catch (IOException e) {
            e.printStackTrace();
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return false;
    }

    protected void onPostExecute(Boolean result) {
        dialog.cancel();
        adapter.notifyDataSetChanged();
        if(result == false){
            Toast.makeText(context, "Unable to fetch data from server", Toast.LENGTH_LONG).show();
        }else{

        }
    }
}
类JSONAsyncTask扩展了AsyncTask{ 进程对话; 私有静态最终字符串标记_CLASSES=“CLASSES”; @凌驾 受保护的void onPreExecute(){ super.onPreExecute(); dialog=新建进度对话框(上下文); setMessage(“正在加载,请稍候”); setTitle(“连接服务器”); dialog.show(); 对话框。可设置可取消(false); } @凌驾 受保护的布尔doInBackground(字符串…URL){ 试一试{ HttpGet-httppost=新的HttpGet(URL[0]); HttpClient HttpClient=新的DefaultHttpClient(); HttpResponse response=httpclient.execute(httppost); //StatusLine stat=response.getStatusLine(); int status=response.getStatusLine().getStatusCode(); 如果(状态==200){ HttpEntity=response.getEntity(); 字符串responsesText=EntityUtils.toString(实体); 日志(“daftar isi类:“+ResponseEastText”); JSONObject jsonObj=新的JSONObject(responsesText); //获取JSON数组节点 JSONArray类=jsonObj.getJSONArray(TAG_类);
对于(int i=0;iyou可以将接口回调传递给AsyncTask,并在onClickListener上实现它)
class JSONAsyncTask extends AsyncTask<String, Void, Boolean> {

    ProgressDialog dialog;
    private static final String TAG_CLASSES = "classes";
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        dialog = new ProgressDialog(context);
        dialog.setMessage("Loading, please wait");
        dialog.setTitle("Connecting server");
        dialog.show();
        dialog.setCancelable(false);
    }

    @Override
    protected Boolean doInBackground(String... urls) {
        try {
            HttpGet httppost = new HttpGet(urls[0]);
            HttpClient httpclient = new DefaultHttpClient();
            HttpResponse response = httpclient.execute(httppost);

            // StatusLine stat = response.getStatusLine();
            int status = response.getStatusLine().getStatusCode();

            if (status == 200) {
                HttpEntity entity = response.getEntity();
                String responseAsText = EntityUtils.toString(entity);
                Utils.log("daftar isi classes: " + responseAsText);
                JSONObject jsonObj = new JSONObject(responseAsText);

                // Getting JSON Array node
                JSONArray classes = jsonObj.getJSONArray(TAG_CLASSES);

                for(int i=0;i<classes.length();i++){
                    //HashMap<String, String> promo = new HashMap<String, String>();
                    JSONObject object = classes.getJSONObject(i);
                    final String startdate=object.getString("startdate");
                    final String masterclass_name=Html.fromHtml((String) object.getString("masterclass_name")).toString();
                    final String enddate=object.getString("enddate");
                    final String trainer_name=Html.fromHtml((String) object.getString("trainer_name")).toString();

                    KelasStudioModel actor = new KelasStudioModel();
                    String starttime = parseDateToHis((String) object.getString("startdate")).toString();
                    String endtime = parseDateToHis((String) object.getString("enddate")).toString();
                    actor.setKelas(Html.fromHtml((String) object.getString("masterclass_name")).toString());
                    actor.setWaktu(starttime + "-" + endtime);
                    actor.setPelatih(object.getString("trainer_name"));
                    kelasstudioList.add(actor);
                }
                return true;
            }
        } catch (IOException e) {
            e.printStackTrace();
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return false;
    }

    protected void onPostExecute(Boolean result) {
        dialog.cancel();
        adapter.notifyDataSetChanged();
        if(result == false){
            Toast.makeText(context, "Unable to fetch data from server", Toast.LENGTH_LONG).show();
        }else{

        }
    }
}