Android Studio Просмотр списка

Я хотел бы настроить свой код, чтобы при нажатии строки в представлении списка он возвращал текст из текстового файла (из блокнота или Access). Это возможно или это должен быть другой формат.

Это то, что у меня есть код, я считаю, что это должна быть одна или две строки кода, которые будут извлекаться из файла. Вот мой основной код активности:

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);
}

Вот мой второй код активности:

`
@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
        }
    }

}`

После просмотра ссылок в разделе "Ответы" мое второе задание теперь выглядит так:

@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 вместо того, чтобы вызвать Второе действие с панелью инструментов и текстовое представление с текстом из моего файла, оно перестает работать.

Также я, кажется, не учел, что хочу связать текстовый файл с определенным значением списка. Когда я делал это с изображениями, когда я щелкал по значению списка, моя панель инструментов во втором упражнении повторила это значение списка, а затем, в зависимости от того, что сказала моя панель инструментов, оно получило правильное изображение из моего нарисованного файла. Кажется, мне не хватает той части, которая связывает каждое значение списка с его конкретным и правильным текстовым файлом.

1 ответ

Решение

Во втором упражнении вы должны использовать Reader, чтобы получить строку текстового файла.

Проверьте этот вопрос о чтении текста и выводе в виде текстового представления.

Об открытии базы данных Access, это большая тема, которая будет включать читателя и, возможно, способ выполнения запросов к ней. Этот другой вопрос адресован вещи.

PS: Извините за добавление только ссылок, но я думаю, что они лучше всего объяснили каждый пункт.

Другие вопросы по тегам