Android 是否为不同的活动使用相同的适配器和ViewHolder?
我正在开发一个应用程序,可以显示不同的位置和天气信息。 我有一个MainActivity,它显示当前位置的信息,如果您搜索另一个,我想在另一个活动中显示与MainActivity格式完全相同的信息。问题是,我在MainActivity中有一个带有适配器和ViewHolder的RecyclerView。如果我使用完全相同的格式,第二个活动是否可以使用相同的适配器和ViewHolder? 我想在用户搜索某个地方时更新MainActivity,但我想保留MainActivity的信息。 以下是适配器和视图保持架的代码:Android 是否为不同的活动使用相同的适配器和ViewHolder?,android,Android,我正在开发一个应用程序,可以显示不同的位置和天气信息。 我有一个MainActivity,它显示当前位置的信息,如果您搜索另一个,我想在另一个活动中显示与MainActivity格式完全相同的信息。问题是,我在MainActivity中有一个带有适配器和ViewHolder的RecyclerView。如果我使用完全相同的格式,第二个活动是否可以使用相同的适配器和ViewHolder? 我想在用户搜索某个地方时更新MainActivity,但我想保留MainActivity的信息。 以下是适配器和
public class WeatherAdapter extends RecyclerView.Adapter<WeatherReportViewHolder>{
private ArrayList<DailyWeatherReport> mDailyWeatherReport;
public WeatherAdapter(ArrayList<DailyWeatherReport> mDailyWeatherReport) {
this.mDailyWeatherReport = mDailyWeatherReport;
}
@Override
public void onBindViewHolder(WeatherReportViewHolder holder, int position) {
position+=1;
DailyWeatherReport report=mDailyWeatherReport.get(position);
holder.updateUI(report);
holder.updateDate(position);
}
@Override
public int getItemCount() {
return mDailyWeatherReport.size()-1;
}
@Override
public WeatherReportViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View card= LayoutInflater.from(parent.getContext()).inflate(R.layout.card_weather,parent,false);
return new WeatherReportViewHolder(card);
}
}
public class WeatherReportViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
.....
public WeatherReportViewHolder(View itemView) {
.....
}
public void updateUI(DailyWeatherReport report){
.....
}
public void updateDate(int i){
.....
}
}
}
公共类WeatherAdapter扩展了RecyclerView.Adapter{
private ArrayList mDailyWeatherReport;
公共天气适配器(ArrayList mDailyWeatherReport){
this.mDailyWeatherReport=mDailyWeatherReport;
}
@凌驾
BindViewHolder上的公共无效(WeatherReportViewHolder,内部位置){
位置+=1;
DailyWeatherReport=mDailyWeatherReport.get(位置);
持有人。更新(报告);
持有人。更新日期(位置);
}
@凌驾
public int getItemCount(){
返回mDailyWeatherReport.size()-1;
}
@凌驾
public WeatherReportViewHolder onCreateViewHolder(视图组父级,int-viewType){
View card=LayoutInflater.from(parent.getContext()).flate(R.layout.card\u weather,parent,false);
返回新的WeatherReportViewHolder(卡);
}
}
公共类WeatherReportViewHolder扩展了RecyclerView.ViewHolder实现了View.OnClickListener{
.....
public WeatherReportViewHolder(查看项目视图){
.....
}
公共无效更新(每日天气报告){
.....
}
公共无效更新日期(int i){
.....
}
}
}
没问题。如果布局、视图ID等都匹配的话,你就不可能使用同一个适配器,因为你显然会创建一个新的实例,所以不会有任何问题!谢谢是的,你不会有任何问题,只要创建它的新实例,就像@gitter说的那样。@gitter新实例是什么意思?没问题。如果布局、视图ID等都匹配的话,你就不可能使用同一个适配器,因为你显然会创建一个新的实例,所以不会有任何问题!谢谢是的,你不会有任何问题,只要创建它的新实例,就像@gitter说的那样。@gitter你说的新实例是什么意思?