Чтение из папки raw

427
10 августа 2017, 22:12

У меня есть две Activity. В обеих есть ListView. Когда нажимаю на список первого Activity, то откроется первый файл из папки raw, но, когда нажимаю на список второго Activity, то откроется тот файл, который открылся при нажатии на список первого Activity. И так идёт дальше. Если сказать кратко, то при нажатии на каждый список обе Activity откроют одинаковые файлы. Как сделать, чтобы при нажатии на список второго Activity открылся второй файл из папки raw, a не файл который открылся при нажатии на список первого Activity

Код MainActivity

private ListView lv1;
//Создаем массив разделов:
private String lv_arr[] = {
        "Список-1",//n0
        "Список-2",//n1
};

/**
 * Called when the activity is first created.
 */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    // Получим идентификатор ListView
    lv1 = (ListView) findViewById(R.id.listView);
    //устанавливаем массив в ListView
    lv1.setAdapter(
            new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, lv_arr));
    lv1.setTextFilterEnabled(true);
    //Обрабатываем щелчки на элементах ListView:
    lv1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        public void onItemClick(AdapterView<?> a, View v, int position, long id) {
            //Позиция элемента, по которому щелкнули
            String itemname = new Integer(position).toString();
            Intent intent = new Intent();
            intent.setClass(MainActivity.this, ViewActivity.class);
            Bundle b = new Bundle();
            //defStrID содержит строку, которую отправим через itemname в другое Activity
            b.putString("defStrID", itemname);
            intent.putExtras(b);
            //запускаем Intent
            startActivity(intent);
        }
    });
}

Код ViewActivity

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE); //скрываем заголовок
    setContentView(R.layout.view);

    //скрываем строку состояния
    Bundle bundle = getIntent().getExtras();
    String itemname = "n" + bundle.getString("defStrID"); //получаем строку и формируем имя ресурса
    Context context = getBaseContext(); //получаем контекст
    //читаем текстовый файл из ресурсов по имени
    String text = readRawTextFile(context, getResources().getIdentifier(itemname, "raw", "ru.akmaltilloev.frameeditguide"));
    WebView myWebView = (WebView) findViewById(R.id.webView);
    String summary = "<!Doctype html><html><head><meta charset=utf-8></head><body>" + text + "</body></html>";
    myWebView.loadData(summary, "text/html; charset=utf-8", "utf-8"); //загружаем текст в webview
}
public static String readRawTextFile(Context ctx, int resId) //читаем текст из raw
{
    InputStream inputStream = ctx.getResources().openRawResource(resId);
    InputStreamReader inputreader = new InputStreamReader(inputStream);
    BufferedReader buffreader = new BufferedReader(inputreader);
    String line;
    StringBuilder text = new StringBuilder();
    try {
        while ((line = buffreader.readLine()) != null) {
            text.append(line);
            text.append('\n');
        }
    } catch (IOException e) {
        return null;
    }
    return text.toString();
}
READ ALSO
Как побороть org.openqa.selenium.StaleElementReferenceException

Как побороть org.openqa.selenium.StaleElementReferenceException

Перебираю элементы итератором по css локаторам

405
&ldquo;Time Since/Ago&rdquo; metod. android studio, java

“Time Since/Ago” metod. android studio, java

Кто знает, как написать метод, который будет высчитывать сколько времени назад пользователь сделал то, или иное действие, и будет возвращать...

414
В каких методах необходим synchronized

В каких методах необходим synchronized

Подскажите, есть ли ошибки в рассужденияхнеобходимо установить модификатор synchronized только тем методам, которым необходимо

440
Удаление дубликатов в массиве String[] с использованием Arrays.copyOf

Удаление дубликатов в массиве String[] с использованием Arrays.copyOf

Привет всем, есть метод public String[] remove(String[] array), который должен удалить все дубликаты в массивеДля обрезания массива надо использовать метод...

454