我该如何在此代码中设置OnItemClickListener并且我想在应用程序运行时检查互联网 [英] how can i setOnItemClickListener in this code And i wanted to check for the internet while app is running

查看:35
本文介绍了我该如何在此代码中设置OnItemClickListener并且我想在应用程序运行时检查互联网的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

//这是代码实际开始的地方.我想从listOnclick列表器打开一个活动,我尝试了很多,但是我无法设置列表器,有人可以在这里帮助我,我是新蜜蜂

//This is where the codes start actually.I want to open an activity from a listOnclick listner i have tried alot but i was not able to set the listners can someone please help me here i am i new bee

    BottomNavigationView navigation = findViewById(R.id.navigation);
    navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);

    lvMovies = findViewById(R.id.lvMovies);

}

这是我启动Jsontask的地方 私人BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener = new BottomNavigationView.OnNavigationItemSelectedListener(){

this is where i starts the Jsontask private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener = new BottomNavigationView.OnNavigationItemSelectedListener() {

    @Override
    public boolean onNavigationItemSelected(@NonNull MenuItem item) {
        switch (item.getItemId()) {
            case R.id.navigation_dry_clean:
                new JSONTask().execute("");
                return true;

            case R.id.press:
                new JSONTask().execute("https:/");
                return true;
        }
        return false;
    }
};
this is where AsyncTask starts.
public class JSONTask extends AsyncTask<String, String, List<MovieModel>> {
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        dialog.show();
    }

    @Override
    protected List<MovieModel> doInBackground(String... params) {
        BufferedReader reader = null;
        HttpURLConnection httpURLConnection = null;
        try {
            URL url = new URL(params[0]);
            httpURLConnection = (HttpURLConnection) url.openConnection();
            httpURLConnection.connect();
            InputStream stream = httpURLConnection.getInputStream();
            reader = new BufferedReader(new InputStreamReader(stream));
            StringBuffer buffer = new StringBuffer();
            String line = "";
            while ((line = reader.readLine()) != null) {
                buffer.append(line);
            }
            String finalJson = buffer.toString();

            JSONObject parentobject = new JSONObject(finalJson);
            JSONArray parentarray = parentobject.getJSONArray("movies");

            List<MovieModel> movieModelList = new ArrayList<>();
            for (int i = 0; i < parentarray.length(); i++) {
                JSONObject finalObject = parentarray.getJSONObject(i);
                MovieModel movieModel = new MovieModel();
                movieModel.setClothesname(finalObject.getString("clothesname"));
                movieModel.setPrice(finalObject.getInt("price"));
                movieModel.setImage(finalObject.getString("image"));
                ///adding the final object in the list*/
                movieModelList.add(movieModel);

            }
            return movieModelList;

        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (JSONException e) {
            e.printStackTrace();
        } finally {
            if (httpURLConnection != null)
                httpURLConnection.disconnect();
        }
        try {
            if (reader != null) {
                reader.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

    @Override
    protected void onPostExecute(List<MovieModel> result) {
        super.onPostExecute(result);
        dialog.dismiss();
        MovieAdapter adapter = new MovieAdapter(getApplicationContext(), R.layout.row, result);

        lvMovies.setAdapter(adapter);


    }

}

//这是适配器 公共类MovieAdapter扩展了ArrayAdapter {

// this is the adapter public class MovieAdapter extends ArrayAdapter {

    private List<MovieModel> movieModelList;
    private int resource;
    private LayoutInflater inflater;

    public MovieAdapter(Context context, int resource, List<MovieModel> objects) {
        super(context, resource, objects);
        movieModelList = objects;
        this.resource = resource;
        inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
    }

    @Override
    public View getView(int position, @Nullable View convertView, ViewGroup parent) {
        ViewHolder holder = null;

        if (convertView == null) {
            holder = new ViewHolder();
            convertView = inflater.inflate(resource, null);
            holder.tvMovie =  convertView.findViewById(R.id.clothes_name);
            holder.tvYear =  convertView.findViewById(R.id.price);
            holder.ivMovieIcon =  convertView.findViewById(R.id.list_view_icon);

            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }

推荐答案

在单击列表视图中的项目时是否要启动新活动?

Do you want to start a new activity when an item in listview clicked?

您可以使用holder.setOnClickListener

you can use holder.setOnClickListener

否则,请给我们更多有关您想要的内容的信息

otherwise, give us more details about what you want

您可以将此代码用于RecyclerView适配器

you can use this code for RecyclerView adapter

public class MovieAdapterextends RecyclerView.Adapter<MovieAdapter.OrderHolder> {

    private List<MovieModel> movieModelList;
    private int resource;
    private LayoutInflater inflater;

    public MovieAdapter(Context context, int resource, List<MovieModel> objects) {
        super(context, resource, objects);
        movieModelList = objects;
        this.resource = resource;
        inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
    }

    @Override
    public OrderHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(context).inflate(R.layout.row_video, parent, false);
        return new OrderHolder(view);
    }

    @Override
    public void onBindViewHolder(final OrderHolder holder, final int position) {
        VideoObject videoObject = list.get(position);

//put your code here to set text for textview like that
        holder.txvTitle.setText(videoObject.getVideo_title());

        holder.imageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                playVideo(videoObject.getVideo_code(), videoObject.getVideo_image());

            }
        });




        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
             //write your code to start activity
Intent intent=new Intent(context,YOUR_ACTIVITY.class);
  intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(intent);
            }
        });


    }

    @Override
    public int getItemCount() {
        return list.size();
    }


    public class OrderHolder extends RecyclerView.ViewHolder implements View.OnClickListener {


        private TextView clothes_name;
        private TextView clothes_name;
      private ImageView list_view_icon;


        OrderHolder(View itemView) {
            super(itemView);


            clothes_name= itemView.findViewById(R.id.clothes_name);
            price= itemView.findViewById(R.id.price);
            list_view_icon= itemView.findViewById(R.id.list_view_icon);

        }

        @Override
        public void onClick(View view) {

        }
    }


}

这篇关于我该如何在此代码中设置OnItemClickListener并且我想在应用程序运行时检查互联网的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆