2017-01-13 58 views
0

我在Android Studio上遇到了這些問題。 基本上我試圖從一個文件夾「ABC」獲得一個ArrayList,然後打印出來的頁面佈局「activity_max」 ...的Android告訴我,還有在這條線的錯誤:嘗試從文件夾中打印陣列列表時出錯

wordView.setText(max.get(index)); //錯誤: cannot resolve method setText(java.io.file)

這裏是整個代碼,你能幫我找到問題嗎?其實我對我學習的Android和Java ...感謝您的耐心等待第一個步驟......

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_max); 

    File f = new File("file:///app/assets/abc"); 
    ArrayList<File> max = new ArrayList<>(Arrays.asList(f.listFiles())); 

    LinearLayout rootView = (LinearLayout) findViewById(R.id.activity_max); 

    for (int index = 0; index < max.size(); index ++) 

    { 
     TextView wordView = new TextView(this); 
     wordView.setText(max.get(index)); //ERROR: cannot resolve method setText(java.io.file) 
     rootView.addView(wordView); 

    } 
} 
+0

'試圖從folder'打印出來的ArrayList。可怕的描述。您想要打印目錄的文件和文件夾名稱。但是你的目錄路徑不存在,你使用File類錯誤。而且您無法使用File類來處理資產中的文件。 – greenapps

+0

'f.listFiles()'將返回'null',所以試圖將數組從數據庫中取出會導致應用程序崩潰。不要在一個代碼行中放置如此​​多的語句,就好像散列錯誤(就像現在這樣),您將不知道在哪裏。逐個執行語句,並在進一步使用前始終檢查返回值。 – greenapps

+0

'Android告訴我這行有一個錯誤:'。不,不是。但Android Studio。如果你有一個應用程序並且它運行在Android設備上,它將只能是Android。由於代碼無法編譯,因此您還沒有應用程序。 – greenapps

回答

1

您正在嘗試使用File對象養活TextView的。取決於你需要做的,你可以嘗試打印文件名是這樣的:

wordView.setText(max.get(index).getName()); 
+0

謝謝你這麼快,它給了我沒有更多的代碼錯誤,但一旦我點擊應用程序中的按鈕,應該告訴我arrayList,應用程序崩潰,並且此消息顯示「不幸您的應用程序已停止」,也許文件夾路徑有問題? –

+0

你有什麼異常?檢查logcat。 –

+0

「java.lang.RuntimeException:無法啓動活動ComponentInfo {com.example.android.maxhelperv0/com.example.android.maxhelperv0.MaxActivity}:java.lang.NullPointerException:storage == null」 是否意味着文件夾是空的? (該文件夾實際上有303個元素) –