作業ディレクトリに保存されているファイルを参照しようとしているので、オープンソースルーチン「opencsv」を使用してファイルを読み込んで解析できます。
次の行でFileNotFoundExceptionエラーが発生します。
CSVReader reader = new CSVReader(new FileReader("file.csv"), '\t');
次を使用して作業ディレクトリを確認しました。
String curDir = System.getProperty("user.dir");
これは値'\'を返すので、ファイル'file.csv'をプロジェクトのルートディレクトリに配置しました。私はEclipseを使用しています。問題のファイルは読み取り専用ではなく、「アーカイブ」に設定されており、「派生」というラベルは付いていません。
私は、おそらくかなり明らかに、Javaを初めて使用します。Googleでこの問題を検索すると、ファイルのアクセス許可を変更する必要があることがわかりますが、他に何かが足りないのではないかと思います。私は解決策がおそらく痛々しいほど明白であることを知っています:S
完全なコードは次のとおりです。
package mjd.listview.test;
import java.io.FileReader;
import java.util.List;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import au.com.bytecode.opencsv.CSVReader;
public class ListProjectActivity extends ListActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
CSVReader reader = new CSVReader(new FileReader("file.csv"), '\t');
List<String[]> myEntries = reader.readAll();
String[] terms = getResources().getStringArray(R.array.terms_array);
setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, terms));
ListView lv = getListView();
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// When clicked, show a toast with the TextView text
Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
Toast.LENGTH_SHORT).show();
}
});
}
}