Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将列表行中的文本标记为;改为;永久的安卓_Android_Listview_Onclick - Fatal编程技术网

Android 将列表行中的文本标记为;改为;永久的安卓

Android 将列表行中的文本标记为;改为;永久的安卓,android,listview,onclick,Android,Listview,Onclick,我在这里试图实现的是,如果用户单击某一行,则将该行中的文本设置为已读,现在我可以使用onclick方法来实现这一点,问题是,当触发意图或用户退出应用程序时,该文本会消失。我希望文本设置为永久读取。这是我的一段代码,如果有人能帮助我,我将不胜感激。 提前感谢您: public void onListItemClick(ListView parent, View v, int position, long id) { LinearLayout ll = (LinearLayout) v; T

我在这里试图实现的是,如果用户单击某一行,则将该行中的文本设置为已读,现在我可以使用onclick方法来实现这一点,问题是,当触发意图或用户退出应用程序时,该文本会消失。我希望文本设置为永久读取。这是我的一段代码,如果有人能帮助我,我将不胜感激。 提前感谢您:

public void onListItemClick(ListView parent, View v, int position, long id) {
  LinearLayout ll = (LinearLayout) v;
  TextView clickedTextView = (TextView) ll.getChildAt(1);
  clickedTextView.setTextColor(Color.GREEN);
  StringTokenizer st = new StringTokenizer(strings[position],"<@>");
  for(int i=0;i<3;i++)
  {
    coupon = st.nextToken("<@>");
  }
  sharable=st.nextToken();
  Intent i = new Intent(getApplicationContext(), CouponImage.class);
  i.putExtra("The coupon", coupon);
  i.putExtra("Sharable", sharable);
  startActivity(i);
}
public void onListItemClick(ListView父视图、视图v、整数位置、长id){
线性布局ll=(线性布局)v;
TextView点击TextView=(TextView)ll.getChildAt(1);
单击edTextView.setTextColor(Color.GREEN);
StringTokenizer st=新的StringTokenizer(字符串[位置],“”);

对于(int i=0;i您必须将每个文本项的读取状态存储在中,或者存储在中的平面文件中。

这是因为每当您滚动列表时,都会离开应用程序并返回,等等。您最终会看到ListAdapter重新呈现行视图,并且由于视图循环,列表中的视图与基础数据的比例永远不会是1:1。如果您希望我们的变化是“粘性的”您需要考虑以适配器知道如何正确呈现的方式修改ListAdapter的基础数据,而不仅仅是更改行的这个特定实例——您正在将项标记为已读,而不仅仅是将项的呈现视图的一个实例设置为已读。如果有帮助,您可以将其视为MVC

也就是说,这里真正的更改应该是适配器的方法,更改其数据源,然后可能调用


Fredley关于SQLite或存储的回答可能有些过分,如果数据不需要在活动中的这一个会话之后继续存在,或者如果您正在处理的数据也是暂时的(例如,经常更改的网络数据临时加载到ArrayAdapter中),在任何情况下,这都有点误导,因为仅仅将数据转储到磁盘并不能解决将数据视图与模型混为一谈的根本问题。

或者用户退出应用程序-我会说它确实需要在多个会话中保持。我试过你的解决方案,但没有结果。有人能给我一个解决方案的优先顺序吗疯狂的人谁能够实现它,如果可能的话,一些代码,使事情更清楚。