gpt4 book ai didi

android - 创建新 Activity 时如何记住单个 ListView 项目的颜色

转载 作者:行者123 更新时间:2023-11-29 17:47:00 27 4
gpt4 key购买 nike

这是我更改单个 ListView 项目颜色的方法。但我想记住最后选择的项目的颜色,如果 Activity 被创建(在 onCreate() 方法中),显示它。

public void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);


l.getChildAt(position).setBackgroundColor(Color.GREEN);

if (save != -1 && save != position){
l.getChildAt(save).setBackgroundColor(Color.WHITE);
}

save = position;
}

编辑:

这是 onCreate 方法:

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_go_to_alarams);


preferences = this.getSharedPreferences("com.example.projektzaliczeniowy", Context.MODE_PRIVATE);
lv = (ListView) findViewById(android.R.id.list);

setListAdapter(adapter);

int save = preferences.getInt("positionNr", -1);

if (save != -1){
lv.getChildAt(save).setBackgroundColor(Color.GREEN); // **HERE IS AN ERROR**

}
}

这是我的 xml fragment :

<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.39"
android:clickable="true" >
</ListView>

对不起我的英语 :) 你能帮我吗?

最佳答案

将您的 if 代码更改为:

    SharedPreferences prefs = this.getSharedPreferences(getPackageName(),MODE_PRIVATE);
int save = prefs.getInt("selected", -1);
if (save != -1 && save != position){
l.getChildAt(save).setBackgroundColor(Color.WHITE);
}
prefs.edit().putInt("selected",position).apply();

在你的 onCreate 上

SharedPreferences prefs = this.getSharedPreferences(getPackageName(),MODE_PRIVATE);
int save = prefs.getInt("selected", -1);
if(save!=-1)
listview.getChildAt(save).setBackgroundColor(Color.WHITE);

关于android - 创建新 Activity 时如何记住单个 ListView 项目的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25754706/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com