我有一个搜索栏例如:从0到10.如果我想将搜索栏设置为5作为默认位置,我该怎么做.所以在这个例子中,seekbar应该从中间开始.
我从系统文件中读取BufferedReader文本; 例如,该文本包含5个单词,但在另一个案例中,它可以包含更少或更多的单词.然后我将此文本(提到的单词)放入SINGLE字符串并将该字符串保存到共享首选项.然后我用这个字符串做了一个微调器.代码如下:
Spinner spinner = new Spinner(this);
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, yourString.split(" "));
spinner.setAdapter(spinnerArrayAdapter);
Run Code Online (Sandbox Code Playgroud)
然后我从另一个文件中读取文本.此文本始终包含一个单词.这个词与我从第一个文件中读取的一个单词相同(例如,如果我读到的第一个文件包含5个单词,其中一个单词是"黑色",那么我读到的第二个文件也是包含"黑色").我需要将这个特定的单词(存在于两个文件中)作为我的微调器中的默认选择选项.
例如:
第一个字符串包含:红色,蓝色,黄色,黑色,白色
第二个字符串包含:黄色
我从第一个字符串创建一个微调器,所以spinner中的选项填充如下:"红色,蓝色,黄色,黑色,白色",默认选择的选项是红色(因为它恰好是我的第一个字符串中的第一个),但在这种情况下,我需要将黄色设为默认选项,因为第二个字符串包含"黄色".两个字符串中的单词总是不同的.
BTW:我知道如何在微调器中保存位置,但如果我比较两个字符串并且其中一个包含更多单词,我不知道如何在微调器中设置位置.
我使用DownloadManager获取下载状态,但它仍然不起作用,它从不跳到条件if(c.moveToFirst()),我不知道为什么.请问有人帮帮我吗?
private final BroadcastReceiver myReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if(Intent.ACTION_SCREEN_OFF.equals(action)) {
DownloadManager downloadMgr = (DownloadManager)getSystemService(DOWNLOAD_SERVICE);
DownloadManager.Query query = new DownloadManager.Query();
query.setFilterByStatus(DownloadManager.STATUS_FAILED|DownloadManager.STATUS_PENDING|DownloadManager.STATUS_RUNNING|DownloadManager.STATUS_SUCCESSFUL);
Cursor c = downloadMgr.query(query);
if(c==null) {
//
}
else {
if(c.moveToFirst()) {
int columnIndex = c.getColumnIndex(DownloadManager.COLUMN_STATUS);
int status = c.getInt(columnIndex);
if(status == DownloadManager.STATUS_RUNNING){
//do something
}
}
}
}
}
};
Run Code Online (Sandbox Code Playgroud) 我有例如按钮,当用户点击它时我想通过DownloadManager查找下载历史记录,但问题是我的光标是空的,它永远不会进入条件if(c.moveToFirst()),它总是跳过这个条件.
DownloadManager downloadMgr = (DownloadManager)getSystemService(DOWNLOAD_SERVICE);
DownloadManager.Query query = new DownloadManager.Query();
query.setFilterByStatus(DownloadManager.STATUS_FAILED|DownloadManager.STATUS_PENDING|DownloadManager.STATUS_RUNNING|DownloadManager.STATUS_SUCCESSFUL);
Cursor c = downloadMgr.query(query);
if(c==null) {
//
}
else {
if(c.moveToFirst()) {
int columnIndex = c.getColumnIndex(DownloadManager.COLUMN_STATUS);
int status = c.getInt(columnIndex);
if(status == DownloadManager.STATUS_RUNNING){
//do something
}
}
}
Run Code Online (Sandbox Code Playgroud)
我也试过这个代码(由imran khan),但仍然是同样的问题:
DownloadManager.Query query = null;
Cursor c = null;
DownloadManager downloadManager = null;
downloadManager = (DownloadManager)getSystemService(DOWNLOAD_SERVICE);
query = new DownloadManager.Query();
query.setFilterByStatus(DownloadManager.STATUS_FAILED|DownloadManager.STATUS_PENDING|DownloadManager.STATUS_RUNNING|DownloadManager.STATUS_SUCCESSFUL);
c = downloadManager.query(query);
if(c.moveToFirst()) {
int status = c.getInt(c.getColumnIndex(DownloadManager.COLUMN_STATUS));
switch(status) {
case DownloadManager.STATUS_PAUSED:
break;
case DownloadManager.STATUS_PENDING:
break;
case DownloadManager.STATUS_RUNNING: …Run Code Online (Sandbox Code Playgroud) 我有一个奇怪的问题。我从来没有过 当我尝试将int值保存到我的SharedPreference中,然后在其他Activity中恢复时。即使我将其他值保存在那里,值也始终为0(例如:1);
private String Number;
private String Profile;
Run Code Online (Sandbox Code Playgroud)
然后在第一个活动中将值(在这种情况下为“ 1”)保存到SharedPreferences中:
SharedPreferences a = FirstActivity.this.getSharedPreferences("a", MODE_PRIVATE);
SharedPreferences.Editor prefsEditorProfiles = a.edit();
prefsEditorProfiles.putInt(Profile, 1);
prefsEditorProfiles.putInt(Number, 1);
prefsEditorProfiles.commit();
Run Code Online (Sandbox Code Playgroud)
然后在其他活动中还原SharedPreferences:
SharedPreferences a = SecondActivity.this.getSharedPreferences("a", MODE_PRIVATE);
int ab = a.getInt(Number, 0);
Run Code Online (Sandbox Code Playgroud)
应用程序显示0而不是1。我的其他SharedPreferences效果很好。我不知道问题出在哪里。
我有ListPreference,它包含例如5个选项,我想在用户选择它时将其中一个值保存到SharedPreferences.我该怎么做?
顺便说一句.我知道如何为SharedPreferences节省价值,但是当用户选择其中一个时,我不知道如何获得该值.
我有这个简单的小部件,当我点击它时,它应该打开我的活动,它可以工作,但在重新启动后它不起作用。我必须删除然后再次将小部件添加到我的主屏幕,因为当我点击小部件时,小部件没有响应,也没有打开我的活动。那么问题出在哪里呢?
代码:
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
final int N = appWidgetIds.length;
for(int i=0; i<N; i++){
int appWidgetId = appWidgetIds[i];
context.startService(new Intent(context, WidgetService.class));
Intent intent = new Intent(context, WidgetDialog.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
views.setOnClickPendingIntent(R.id.layout_widget, pendingIntent);
appWidgetManager.updateAppWidget(appWidgetId, views);
}
}
@Override
public void onEnabled(Context context){
context.startService(new Intent(context, WidgetService.class));
}
@Override
public void onDisabled(Context context){
context.stopService(new Intent(context, WidgetService.class));
}
Run Code Online (Sandbox Code Playgroud) 我有一个文件(例如:test.txt),这个文件包含一些行,例如一行是:abcd = 11但它可以是例如:abcd = 12数字不同但是abcd =在所有情况下都是相同的,那么任何人都可以命令我找到这条线并删除它吗?
我试过了:sed -e \"/$abcd=/d\" /test.txt >/test.txt但它删除了我文件中的所有行,我也试过了:sed -e \"/$abcd=/d\" /test.txt >/testNew.txt但是它不会从test.txt中删除行,它只会创建新文件(testNew.txt)并在此文件中删除我的行.但这不是我想要的.
任何人都可以告诉我如何为我的应用程序设置一个主题,当Android版本发生变化时,该主题会发生变化.例如,如果有人在Android 2.1主题上使用我的应用程序将如下所示:http://daily-money.googlecode.com/svn/wiki/img/prefs.png
但是如果有人会使用我的应用程序,例如Android 4.0.3主题将如下所示:http: //img.tapatalk.com/dcff019c-27ba-1e1a.jpg我使用过minSDK 7.
谢谢.
如何在最近的一小时内启动AlarmManager?例如,当用户点击按钮并且时间是12:32时,我想在13:00开始服务,然后每小时重复一次,我尝试了这段代码,但它不起作用,它只在一小时后启动AlarmManager,所以如果时间是12:32,它将在13:32开始服务.
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, cal.get(Calendar.HOUR_OF_DAY)+1);
AlarmManager alarm = (AlarmManager)myService.this.getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(myService.this, AlarmReceiver.class);
PendingIntent pIntent = PendingIntent.getBroadcast(BatteryService.this, 0, i, 0);
alarm.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 1000*60*60, pIntent);
Run Code Online (Sandbox Code Playgroud) 我有一个问题,我知道如何检查文件夹是否为空,但我总是得到一个错误,当我检查文件夹是否为空循环,这是我的代码不起作用的示例.
String sdcard = Environment.getExternalStorageDirectory().toString();
File file = new File(sdcard);
File subFiles[] = file.listFiles();
for(int i=0; i<subFiles.length; i++) {
File subFile = new File(sdcard +"/"+ subFiles[i].getName());
if(subFile.isDirectory() && subFile.listFiles().length==0) {
}
}
Run Code Online (Sandbox Code Playgroud)
我总是在我的情况下得到错误.
我有一些活动,可以通过编程方式创建微调器,单击按钮即可打开微调器,但是每次单击按钮时,微调器弹出菜单都位于屏幕的一角而不是中间,因此我需要在中间显示此微调器弹出菜单屏幕。
这是我的代码
Spinner s1 = new Spinner(this);
String[] test = { "Never", "3", "6" };
ArrayAdapter<String> arrayAdapter1 = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_single_choice, test);
s1.setAdapter(arrayAdapter1);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
params.gravity = Gravity.CENTER;
s1.setLayoutParams(params);
b3.setOnClickListener(new OnClickListener() {
public void onClick(View paramView) {
s1.performClick();
}
});
Run Code Online (Sandbox Code Playgroud) android ×11
download ×2
file ×2
spinner ×2
alarmmanager ×1
android-4.0-ice-cream-sandwich ×1
center ×1
cursor ×1
default ×1
directory ×1
find ×1
for-loop ×1
int ×1
is-empty ×1
line ×1
menu ×1
popup ×1
position ×1
preferences ×1
reboot ×1
save ×1
seekbar ×1
selected ×1
set ×1
styles ×1
themes ×1
unix ×1
widget ×1