【发布时间】:2020-12-21 22:42:53
【问题描述】:
我想使用从 API 响应中获取的 SharedPreferences 更新我的 ListView... 我做了这样的事情:
- 首先是字符串[]:
String First[] = {"aa"};
String Second[] = {"aa"};
String Third[] = {"aa"};
String Four[] = {"aa"};
Integer Five[] = {1};
- 我想使用共享首选项更新此设置
SharedPreferences settings;
settings = getSharedPreferences("Number_List", Context.MODE_PRIVATE);
String uFirst = settings.getString("uFirst", "NONE");
String uSecond = settings.getString("uSecond", "NONE");
String uThird = settings.getString("uThird", "NONE");
String uFour = settings.getString("uFour", "NONE");
int uFive= settings.getInt("uFive", 0);
First = Arrays.copyOf(First, First.length + 1);
Second= Arrays.copyOf(Second, Second.length + 1);
Third= Arrays.copyOf(Third, Third.length + 1);
Four= Arrays.copyOf(Four, Four.length + 1);
Five= Arrays.copyOf(Five, Five.length + 1);
First[First.length -1] = uFirst;
Second[Second.length -1] = uSecond;
Third[Third.length -1] = uThird;
Four[Four.length -1] = uFour;
Five[Five.length -1] = uFive;
adapter.notifyDataSetChanged();
而且这段代码永远不会刷新列表视图......我完全不知道如何让它更自动......每次我在列表中添加其他东西时,例如。第一[] = {"aaa","bbbb"};它工作正常......
有人可以花时间帮忙吗?
适配器:
class listDataAdapter extends ArrayAdapter<String> {
Context context;
String rFirst[];
String rSecond[];
String rThird[];
String rFour[];
Integer Five[];
listDataAdapter(Context c, String rFirst[], String rSecond[], String rThird[], String rFour[], Integer Five[]) {
super(c, R.layout.listview_row_orders, R.id.data_zal_text, rFirst);
this.context = c;
this.rFirst = rFirst;
this.rSecond = rSecond;
this.rThird = rThird;
this.rFour = rFour;
this.Five = Five;
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
LayoutInflater layoutInflater = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View row = layoutInflater.inflate(R.layout.listview_row_orders, parent, false);
TextView myFirst = row.findViewById(R.id.data_zal_text_data);
TextView mySecond = row.findViewById(R.id.data_rozl_text_data);
TextView myThird = row.findViewById(R.id.place_zal_text_data);
TextView myFour = row.findViewById(R.id.place_rozl_text_data);
ProgressBar myOrderProgress = row.findViewById(R.id.progress_order_status);
myFirst.setText(rFirst[position]);
mySecond.setText(rSecond[position]);
myThird.setText(rThird[position]);
myFour.setText(rFour[position]);
myOrderProgress.setProgress(Five[position]);
return row;
}
```
【问题讨论】:
-
我不确定这里发生了什么。你能分享你的适配器代码吗?
-
@Eselfar 我通过适配器代码编辑了我的问题 :) 请看一下
标签: java android string listview