如何使用android更新未放置在listview适配器中的单个值

如何使用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

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"
    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)
to
String restoredText=prefs.getString(“位置”,“未保存动作”)查看它是否工作。它已保存。我可以在日志上打印值。从该引用返回的值只有一个,我只想在该字段@Adithya上显示值