如何在水平列表视图中设置特定项目textview和imageview中的文本和图像
how to set the text and image in particular item textview and imageview in horizontal listview
我在单击片段 class 中的按钮时将片段中的值传递给了 mainactivity。我的主要 activity 有一个片段和一个水平列表视图,基础 adapter.my 水平列表视图有一个图像视图和一个文本视图。我想在特定的水平列表项中设置值和图像。如果我必须单击片段 class 中的第一项加号按钮,则值和图像要设置水平列表视图的第一项。请在此处建议 me.my 水平列表视图适配器代码。提前致谢。`
public class HorizontalAdapter extends BaseAdapter {
private Context context;
int value = 0;
int a[];
public HorizontalAdapter(Context c, int value) {
context = c;
this.value = value;
}
@Override
public int getCount() {
return 10;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
// convertView = new View(context);
convertView = inflater.inflate(R.layout.horizantal_image, null);
}
TextView textView = (TextView) convertView.findViewById(R.id.title);
ImageView imageView = (ImageView) convertView.findViewById(R.id.image);
textView.setText(String.valueOf(value));
// imageView.setImageResource(image);
System.out.println(value);
System.out.println(position);
System.out.println(convertView);
System.out.println(parent);
// textView.setText(dataObjects[position]);
// imageView.setImageResource(imageid[position]);
return convertView;
}
}
您必须根据您的要求传递一些对象数组或 ArrayList 并更改数组特定项的值并将其传递给您的适配器。您可以创建一个模型 Class,您可以在其中像这样定义文本和图像
public class ListModel{
private String imageUrl;
private String title;
public String getImageUrl() {
return imageUrl;
}
public void setImageUrl(String imageUrl) {
this.imageUrl = imageUrl;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
并且在您的 BaseAdapter 中,您必须像这样使用 ListModel 的 ArrayList:
ArrayList<ListModel> listData = new ArrayList<ListModel>();
而且你必须像这样从某些地方设置 listData 的内容
ListModel listModelData = new ListModel();
// Add Content for specific object
listModelData.setTitle("your title");
listModelData.setImageUrl("your image url");
// Add this object in listview
listData.add(listModelData);
之后,您必须像这样在您的 BaseAdapter 中传递此列表:
public class HorizontalAdapter extends BaseAdapter {
private Context context;
private int value = 0;
private ArrayList<ListModel> listData;
public HorizontalAdapter(Context c, int value, ArrayList<ListModel> listData) {
context = c;
this.value = value;
this.listData= listData;
}
@Override
public int getCount() {
return listData.size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
// convertView = new View(context);
convertView = inflater.inflate(R.layout.horizantal_image, null);
}
TextView textView = (TextView) convertView.findViewById(R.id.title);
ImageView imageView = (ImageView) convertView.findViewById(R.id.image);
textView.setText(String.valueOf(listData.get(position).getImageUrl()));
// imageView.setImageResource(image);
System.out.println(String.valueOf(listData.get(position).getTitle()));
System.out.println(position);
System.out.println(convertView);
System.out.println(parent);
if (listData.get(position).getImageUrl()!=null){
imageView.setImageResource(listData.get(position).getImageUrl());
}
if (listData.get(position).getTitle()!=null){
textView.setText(listData.get(position).getTitle());
}
return convertView;
}
}
要更新 ArrayList 的特定位置,您必须这样做:
listData.get(0).setImageUrl("Updated Image url");
listData.get(0).setTitle("Updated Title ");
要在列表视图中设置适配器,您必须从 activity:
HorizontalAdapter mAdapter = new HorizontalAdapter (mCtx, value,listData );
mListViews.setAdapter(mAdapter);
要更新 Listview,您必须在更新 ArrayList 的内容后调用 notifyDataSetChanged,如下所示:
if (mAdapter !=null){
mAdapter .notifyDataSetChanged();
}
我在单击片段 class 中的按钮时将片段中的值传递给了 mainactivity。我的主要 activity 有一个片段和一个水平列表视图,基础 adapter.my 水平列表视图有一个图像视图和一个文本视图。我想在特定的水平列表项中设置值和图像。如果我必须单击片段 class 中的第一项加号按钮,则值和图像要设置水平列表视图的第一项。请在此处建议 me.my 水平列表视图适配器代码。提前致谢。`
public class HorizontalAdapter extends BaseAdapter {
private Context context;
int value = 0;
int a[];
public HorizontalAdapter(Context c, int value) {
context = c;
this.value = value;
}
@Override
public int getCount() {
return 10;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
// convertView = new View(context);
convertView = inflater.inflate(R.layout.horizantal_image, null);
}
TextView textView = (TextView) convertView.findViewById(R.id.title);
ImageView imageView = (ImageView) convertView.findViewById(R.id.image);
textView.setText(String.valueOf(value));
// imageView.setImageResource(image);
System.out.println(value);
System.out.println(position);
System.out.println(convertView);
System.out.println(parent);
// textView.setText(dataObjects[position]);
// imageView.setImageResource(imageid[position]);
return convertView;
}
}
您必须根据您的要求传递一些对象数组或 ArrayList 并更改数组特定项的值并将其传递给您的适配器。您可以创建一个模型 Class,您可以在其中像这样定义文本和图像
public class ListModel{
private String imageUrl;
private String title;
public String getImageUrl() {
return imageUrl;
}
public void setImageUrl(String imageUrl) {
this.imageUrl = imageUrl;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
并且在您的 BaseAdapter 中,您必须像这样使用 ListModel 的 ArrayList:
ArrayList<ListModel> listData = new ArrayList<ListModel>();
而且你必须像这样从某些地方设置 listData 的内容
ListModel listModelData = new ListModel();
// Add Content for specific object
listModelData.setTitle("your title");
listModelData.setImageUrl("your image url");
// Add this object in listview
listData.add(listModelData);
之后,您必须像这样在您的 BaseAdapter 中传递此列表:
public class HorizontalAdapter extends BaseAdapter {
private Context context;
private int value = 0;
private ArrayList<ListModel> listData;
public HorizontalAdapter(Context c, int value, ArrayList<ListModel> listData) {
context = c;
this.value = value;
this.listData= listData;
}
@Override
public int getCount() {
return listData.size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
// convertView = new View(context);
convertView = inflater.inflate(R.layout.horizantal_image, null);
}
TextView textView = (TextView) convertView.findViewById(R.id.title);
ImageView imageView = (ImageView) convertView.findViewById(R.id.image);
textView.setText(String.valueOf(listData.get(position).getImageUrl()));
// imageView.setImageResource(image);
System.out.println(String.valueOf(listData.get(position).getTitle()));
System.out.println(position);
System.out.println(convertView);
System.out.println(parent);
if (listData.get(position).getImageUrl()!=null){
imageView.setImageResource(listData.get(position).getImageUrl());
}
if (listData.get(position).getTitle()!=null){
textView.setText(listData.get(position).getTitle());
}
return convertView;
}
}
要更新 ArrayList 的特定位置,您必须这样做:
listData.get(0).setImageUrl("Updated Image url");
listData.get(0).setTitle("Updated Title ");
要在列表视图中设置适配器,您必须从 activity:
HorizontalAdapter mAdapter = new HorizontalAdapter (mCtx, value,listData );
mListViews.setAdapter(mAdapter);
要更新 Listview,您必须在更新 ArrayList 的内容后调用 notifyDataSetChanged,如下所示:
if (mAdapter !=null){
mAdapter .notifyDataSetChanged();
}