的所有人。下午好。
这是一个Android小部件。我正在使用此代码。我只想将外部文件中的ArrayList作为.TXT,而不是从java文件中获取引号列表。
这是我的代码:
public class UpdateWidgetService extends Service {
private static final String TAG = UpdateWidgetService.class.getSimpleName();
@Override
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
Log.d(TAG, "onStart started");
// Create some random data
Random random = new Random();
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(this.getApplicationContext());
int[] appWidgetIds = intent.getIntArrayExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS);
if (appWidgetIds.length > 0) {
for (int widgetId : appWidgetIds) {
List<String> qList = getListFromTxtFile("quote.txt");
int nextInt = random.nextInt(qList.size());
RemoteViews remoteViews = new RemoteViews(getPackageName(), R.layout.widget);
remoteViews.setTextViewText(R.id.widget_textview, qList.get(nextInt));
appWidgetManager.updateAppWidget(widgetId, remoteViews);
}
stopSelf();
}
super.onStart(intent, startId);
}
public List<String> getListFromTxtFile(String txtFileName){
// File sdcard = Environment.getExternalStorageDirectory();
// Get the text file
// File file = new File(sdcard,txtFileName);
AssetManager am = this.getAssets();
List<String> qList = new ArrayList<String>();
//Read text from file
try {
InputStream is = am.open("quote.txt");
//BufferedReader br = new BufferedReader(new FileReader(file));
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line;
// get data in text file line by line
while ((line = br.readLine()) != null) {
qList.add(line);
}
}
catch (IOException e) {
//You'll need to add proper error handling here
}
return qList;
}
}
答案 0 :(得分:0)
使用此方法从资产中读取文本文件并返回列表
public List<String> getListFromTxtFile(String txtFileName){
// File sdcard = Environment.getExternalStorageDirectory();
// Get the text file
// File file = new File(sdcard,txtFileName);
AssetManager am = this.getAssets();
List<String> qList = new ArrayList<String>();
//Read text from file
try {
InputStream is = am.open(txtFileName);
//BufferedReader br = new BufferedReader(new FileReader(file));
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line;
// get data in text file line by line
while ((line = br.readLine()) != null) {
qList.add(line);
}
}
catch (IOException e) {
//You'll need to add proper error handling here
}
return qList;
}