リスト ビューの行をクリックすると、テキスト ファイル (メモ帳または Access) からテキストが返されるコードを設定したいと考えています。これは可能ですか、それとも別の形式にする必要がありますか。
これは私がこれまでに持っているコードです。ファイルから取得するコードは 1 ~ 2 行だけでよいと思います。これが私のメイン アクティビティ コードです。
Toolbar toolbar;
ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
toolbar=(Toolbar) findViewById(R.id.toolbar);
toolbar.setTitle(getResources().getString(R.string.app_name));
listView=(ListView) findViewById(R.id.listView);
ArrayAdapter<String> mAdapter = new ArrayAdapter<String>(MainActivity.this,
android.R.layout.simple_list_item_1,
getResources().getStringArray(R.array.Materials));
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Intent intent= new Intent(MainActivity.this, SecondActivity.class);
intent.putExtra("MaterialName", listView.getItemAtPosition(i).toString());
startActivity(intent);
}
});
listView.setAdapter(mAdapter);
}
これが私の2番目のアクティビティコードです:
`
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
mToolbar = (Toolbar) findViewById(R.id.toolbar1);
material = (TextView) findViewById(R.id.textView);
Bundle bundle = getIntent().getExtras();
if(bundle != null) {
mToolbar.setTitle(bundle.getString("MaterialName"));
if(mToolbar.getTitle().toString().equalsIgnoreCase("4140")){
//how do I get it to return the information from a text file
}
}
}`
Answers のリンクを確認すると、2 番目のアクティビティは次のようになります。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
BufferedReader reader = null;
try {
reader = new BufferedReader(
new InputStreamReader(getAssets().open("4140.txt")));
String mLine;
while ((mLine = reader.readLine()) != null) {
text.append(mLine);
text.append('\n');
}
} catch (IOException e) {
Toast.makeText(getApplicationContext(), "Error reading file!", Toast.LENGTH_LONG).show();
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
}
}
TextView output= (TextView) findViewById(R.id.toolbar1);
output.setText((CharSequence)text);
}
}
}
エミュレーターを実行すると、メイン アクティビティが正しく表示されます。 私のプロジェクトの主な活動
4140 のリスト値をクリックすると、ツールバーを使用して 2 番目のアクティビティを表示する代わりに、ファイルのテキストを含むテキストビューが機能しなくなります。
また、テキストファイルを特定のリスト値にリンクしたいということも忘れていたようです。画像でこれを行ったとき、リスト値をクリックすると、2 番目のアクティビティのツールバーがそのリスト値を繰り返し、ツールバーの内容に応じて、ドローアブル ファイルから正しい画像を取得しました。各リスト値を特定の正しいテキスト ファイルにリンクする部分が欠けているようです。