我该如何在此代码中设置OnItemClickListener并且我想在应用程序运行时检查互联网 [英] how can i setOnItemClickListener in this code And i wanted to check for the internet while app is running
问题描述
//这是代码实际开始的地方.我想从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屋!