如何使用android更新未放置在listview适配器中的单个值
MainActivity.xml如何使用android更新未放置在listview适配器中的单个值,android,android-layout,listview,android-adapterview,Android,Android Layout,Listview,Android Adapterview,MainActivity.xml <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" an
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.arunmannuru.arun.PromotionsFeedActivity">
<TextView
android:id="@+id/txtLocation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="My Location"
android:textSize="20dp" />
</FrameLayout>
FeedActivity.java
public class PromotionsFeedActivity extends AppCompatActivity implements Serializable{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_promotions_feed);
SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE);
String restoredText = prefs.getString("location", null);
if (restoredText != null) {
String location = prefs.getString("location", "No name defined");//"No name defined" is the default value.
}
Location = new ArrayList<String>();
Location.add(restoredText);
Log.d(TAG,"Location"+Location);
pfAdapter = new PromotionFeedAdapter(PromotionsFeedActivity.this,R.layout.livefeed_adapter,Titles);
showData(pfAdapter);
}
public void showData(ArrayAdapter<String> adapter){
adapter.notifyDataSetChanged();
show.setAdapter(adapter);
}
}
公共类升级FeedActivity扩展AppCompative实现可序列化{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u promotions\u feed);
SharedReferences prefs=GetSharedReferences(我的首选项名称,模式\私有);
String restoredText=prefs.getString(“位置”,null);
如果(restoredText!=null){
String location=prefs.getString(“location”,“未定义名称”);/“未定义名称”是默认值。
}
位置=新的ArrayList();
位置。添加(restoredText);
日志d(标签“位置”+位置);
pfAdapter=newpromotionfeedadapter(PromotionsFeedActivity.this,R.layout.livefeed\u adapter,Titles);
showData(pfAdapter);
}
public void showData(ArrayAdapter适配器){
adapter.notifyDataSetChanged();
show.setAdapter(适配器);
}
}
FeedAdapter.java
public class PromotionFeedAdapter extends ArrayAdapter<String> {
public PromotionFeedAdapter(Context context, int resource, List<String> objects) {
super(context, resource, objects);
layout=resource;
}
@Override
public View getView(final int position, View convertView, final ViewGroup parent){
//ViewHolder2 mainViewHolder = null;
mContext = parent.getContext();
LayoutInflater inflater = LayoutInflater.from(getContext());
convertView= inflater.inflate(layout,parent,false);
// Layout Folder For Promotion
ViewHolder viewHolder = new ViewHolder();
viewHolder.location = (TextView) convertView.findViewById(R.id.txtLocation);
viewHolder.title = (TextView) convertView.findViewById(R.id.pf_title);
viewHolder.category = (TextView) convertView.findViewById(R.id.pf_category);
viewHolder.picture = (ImageView) convertView.findViewById(R.id.pf_main_pic);
viewHolder.brand = (TextView) convertView.findViewById(R.id.pf_type);
// Navigation listner onClick Promotion
viewHolder.title.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getContext().startActivity(new Intent(getContext(),Webview.class));
}
});
convertView.setTag(viewHolder);
TextView title = ((ViewHolder)convertView.getTag()).title;
TextView category = ((ViewHolder) convertView.getTag()).category;
TextView brand = ((ViewHolder) convertView.getTag()).brand;
TextView location = ((ViewHolder) convertView.getTag()).location;
title.setText(getItem(position));
category.setText(getItem(position));
brand.setText(getItem(position));
location.setText(getItem(position));
return convertView;
}
public static class ViewHolder {
TextView title;
TextView brand;
ImageView picture;
TextView category;
ImageView businessLogo;
TextView location;
}
}
公共类升级FeedAdapter扩展ArrayAdapter{
公共PromotionFeedAdapter(上下文上下文、int资源、列表对象){
超级(上下文、资源、对象);
布局=资源;
}
@凌驾
公共视图getView(最终整型位置、视图转换视图、最终视图组父视图){
//ViewHolder2 mainViewHolder=null;
mContext=parent.getContext();
LayoutInflater充气器=LayoutInflater.from(getContext());
convertView=充气机。充气(布局,父级,假);
//用于促销的布局文件夹
ViewHolder ViewHolder=新ViewHolder();
viewHolder.location=(TextView)convertView.findViewById(R.id.txtLocation);
viewHolder.title=(TextView)convertView.findViewById(R.id.pf_title);
viewHolder.category=(TextView)convertView.findViewById(R.id.pf_category);
viewHolder.picture=(ImageView)convertView.findViewById(R.id.pf\u main\u pic);
viewHolder.brand=(TextView)convertView.findViewById(R.id.pf_类型);
//导航列表器onClick升级
viewHolder.title.setOnClickListener(新视图.OnClickListener()中){
@凌驾
公共void onClick(视图v){
getContext().startActivity(新意图(getContext(),Webview.class));
}
});
convertView.setTag(viewHolder);
TextView title=((ViewHolder)convertView.getTag()).title;
TextView类别=((ViewHolder)convertView.getTag()).category;
TextView品牌=((ViewHolder)convertView.getTag()).brand;
TextView位置=((ViewHolder)convertView.getTag()).location;
title.setText(getItem(position));
category.setText(getItem(position));
brand.setText(getItem(position));
location.setText(getItem(position));
返回视图;
}
公共静态类视图持有者{
文本视图标题;
TextView品牌;
图像视图图片;
文本视图类别;
ImageView商业标识;
文本视图位置;
}
}
我想将位置值放在位置字段中,它是动态值。它将返回的值是单个值。我想在该字段中填充该值。它未放在列表视图中。它是一个单独的字段,将显示位置信息。什么不起作用?我希望显示该位置。但它显示的是返回空引用的变量。@Adithya
location.setText(getItem(position))代码>在此行?检查字符串是否实际存储,更改String restoredText=prefs.getString(“位置”,null)
toString restoredText=prefs.getString(“位置”,“未保存动作”)代码>查看它是否工作。它已保存。我可以在日志上打印值。从该引用返回的值只有一个,我只想在该字段@Adithya上显示值