2013-03-11 101 views
0

所有人。早上好。從TXT文件獲取ArrayList

這是一個android小部件。我正在使用此代碼。我只是想從外部文件中獲取ArrayList作爲.TXT(保存在assets文件夾中),而不是從java文件中獲取引用列表。但是這個代碼有些問題。它不讀取「assets文件夾」中的「quote.txt」文件。

這是我的代碼:

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

它拋出什麼異常? – SudoRahul 2013-03-11 11:26:58

+0

請分享logcat日誌... – 2013-03-11 11:29:27

回答

0

嘗試使用

AssetFileDescriptor descriptor = getAssets().openFd("quote.txt"); 
    FileReader reader = new FileReader(descriptor.getFileDescriptor()); 
+0

我把這個放在哪裏?我是新手 – 2013-03-11 14:42:18

0

在哪裏我把這個代碼,集成電路?在「嘗試{」