无论如何我可以将List变量保存到Androids手机的内部或外部存储器中吗?我知道我可以保存原始数据,但不确定这个.
提前致谢.
我正在寻找一个ListPreference,用户可以在其中更改列表中的项目顺序.这些物品可以拖动,并且可以由用户重新订购.
我在我的自定义ROM中看到了这个(我几乎可以肯定我在Cyanogenmod中看到它)用于QuickPanel.这是一个截图,通过以下方式获得创意:

我知道如何制作自定义ListView项目并设置图标以指示项目是可拖动的,但我不知道如何使它们可拖动,并相应地更改顺序.至于在偏好中保存它们,我发现这可以很容易地实现.
PS:我知道Cyanogenmod是开源的,但我找不到这个特殊事物的来源:(我能得到的最接近的是这个,它应该在另一个屏幕附近...
在此先感谢任何关于此的提示.
更新:我最终使用了接受的答案中的文件,添加和修改.我在这里列出它们以供进一步参考.
使用自定义适配器(在我的情况下为ArrayAdapter)来实现此项可拖动的视觉反馈,这是TextView附近的ImageView.这是可选的.
设置DragListener和RemoveListener以相应地更新列表.ListView不会自动执行此操作.这取决于您使用的适配器.
有一行将View转换为ViewGroup,它产生了一些错误,所以我删除了没有任何问题的转换,不需要它.(在onInterceptTouchEvent方法中).
改变mRemoveMode = 1;TouchInterceptor的构造函数,或者:FLING = 0; SLIDE = 1; TRASH = 2;.我认为TRASH,资源也应该可用.
我实际上不是从答案的链接中获取文件,而是从我已经拥有的Cyanogenmod中获取文件,但我猜这些文件是相同的.
这些是项目中的实际文件(在撰写本文时的r12):
我希望它可以帮助别人:)
这是我的第一个stackoverflow问题.我在这上面做了很多谷歌搜索.在Hashsets,Treesets,LinkedHashSets,Collections,Stacks(Stack类被弃用?)......我意识到我可以使用SQLite,但我暂时试图避免这种情况.
我正在使用Android Studio中的应用程序.该应用与人打交道,列出并以不同方式与他们联系.应用用户可以维护和控制三种类型的列表:最近联系,阻止和收藏.这些列表在共享首选项中保存为字符串集,因此它们可以在应用程序关闭和重新打开后继续存在.当使用在线数据库填充列表时,各个字符串充当主键.我最关心的是"最近联系的"列表,因为这个列表的顺序很重要.
问题是,据我所知,当我声明一个字符串集时,它如下:
Set<String> faveArray = new LinkedHashSet<String>;
Run Code Online (Sandbox Code Playgroud)
据我所知,我只能在右侧使用HashSet,LinkedHashSet或TreeSet.
因为我使用了LinkedHashset,所以当我重新打开应用程序并从共享偏好中拉出数据时,我会期望从最近添加的(LIFO /堆栈)开始拉出字符串,因此当我填充listview时,他们将与列表顶部的"最近联系"人员展示等等......或者至少我期待有某种可预测的顺序/行为,我可以使用.
所以.......我已经为我的共享首选项I/O类附加了我的代码.
从我的主应用程序,我做了类似的事情:
static SharedPrefUTIL sharedPrefUTIL;
sharedPrefUTIL = new SharedPrefUTIL(this);
sharedPrefUTIL.addRecent("derp");
sharedPrefUTIL.addRecent("nerp");
sharedPrefUTIL.addRecent("gerp");
sharedPrefUTIL.addRecent("herp");
Run Code Online (Sandbox Code Playgroud)
此时,代码
Log.i(TAG, set + " committed to " + key);
Run Code Online (Sandbox Code Playgroud)
在类SharedPrefUTIL日志的commit()方法中:
"[derp,nerp,gerp,herp]致力于最近的阵营"
关闭并重新打开应用程序后,如果我们执行:
sharedPrefUTIL.toastContents("R");
Run Code Online (Sandbox Code Playgroud)
结果似乎是随机顺序.<<<<这是我的问题.
任何帮助非常感谢.
package com.secretsoft.booberbunz;
import android.content.Context;
import android.content.SharedPreferences;
import android.util.Log;
import android.widget.Toast;
import java.util.Arrays;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Queue;
import java.util.Set;
import java.util.TreeSet;
/**
* Created by Programming on 2/22/2016.
*/
public class SharedPrefUTIL {
protected static final String TAG …Run Code Online (Sandbox Code Playgroud) 我想在共享首选项中存储一个布尔数组,我想稍后访问数组元素.有人可以帮帮我吗?谢谢你.
我使用共享首选项在我的闹钟中创建了多个闹钟,现在我希望闹钟应该在一周中的特定一天响起,为此我想要一个可以保存闹钟响铃日期的数组。谁能告诉如何将数组放入共享首选项以及如何再次检索它..?
SharedPreferences set=getSharedPreferences(MYPR, 0);
SharedPreferences.Editor ed=set.edit();
ed.putInt("Ahh", Ahh);
ed.putInt("Amm",Amm);
ed.putBoolean("en", true);
ed.commit();
Run Code Online (Sandbox Code Playgroud)
现在我将闹钟时间及其属性放在共享首选项中。要添加什么来放置数组(星期几)也..?
我在Android应用程序中实现了警报.报警工作正常.Toast消息是可见的.
现在我想向用户发出警报框通知.
这是来自ReceiverActivityClass的代码.我试过了
public class ReceiverActivity extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
// Code....
new AlertDialog.Builder(context)
.setTitle("Alert Box")
.setMessage("Msg for User")
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
// some coding...
}
})
.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
arg0.dismiss();
}
}).create().show();
}
Run Code Online (Sandbox Code Playgroud)
}
android broadcastreceiver android-alarms android-alertdialog