2017-02-21 53 views
0

Я пытаюсь прочитать другой .txt-файл (в необработанной папке) во втором действии TextView в зависимости от того, какая кнопка нажата в MainActivity (предыдущая активность), но это не сработает. Я использую метод .putextras и вот мой код MainActivity:Читайте другой .txt в зависимости от того, какая кнопка нажата в предыдущем действии

ImageButton but1=(ImageButton) findViewById(R.id.imageButton2); 
    but1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent int1=new Intent(MainActivity.this,SecondActivity.class); 
      int1.putExtra("Thistext", "textnumberone"); 
      startActivity(int1); 


      finish(); 



     } 
    }); 

    ImageButton but2(ImageButton) findViewById(R.id.imageButton3); 
    but2.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent int2=new Intent(MainActivity.this,SecondActivity.class); 
      int2.putExtra("Thistext", "textnumbertwo"); 
      startActivity(int2); 


      finish(); 



     } 
    }); 

Вот мой код SecondActivity с Bundle ..

Bundle extradata = getIntent().getExtras(); 


    TextView tv = (TextView)findViewById(R.id.firsttextView); 
    vitautori.setText(extradata.getString("Thistext")); 

    if (extradata.equals("textnumberone")) { 

     String texttxt = ""; 
     StringBuffer sbuffer = new StringBuffer(); 
     InputStream is = this.getResources().openRawResource(R.raw.file); 
     BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 

     try { 

      while ((texttxt = reader.readLine()) !=null){ 
       sbuffer.append(texttxt + "n"); 

      } 

      tv.setText(sbuffer); 
      is.close(); 


     }catch(Exception e) { 
      e.printStackTrace(); 
     } 
    } 

    } 
} 

ответ

0

Вы в настоящее время, сравнивающие Bundle данные в строку в

если (extradata.equals ("textnumberone"))

Это не будет работать, вы должны извлечь String данные сначала. Попробуйте это:

Bundle extradata = getIntent().getExtras(); 
String textString = extradata.getString("Thistext"); 
if (textString.equals("textnumberone")) { 

Еще одна вещь: Вы установите Строка из Bundle к (я полагаю) TextView в

vitautori.setText (extradata.getString ("Этот текст"));

но я не вижу инициализацию vitautori в любом месте. Поэтому убедитесь, что он инициализирован, или это сработает.

+0

Большое спасибо Bmuig, сейчас он работает. Я дал тебе большой палец. – onecoin

+0

Добро пожаловать. Если ответ решит вашу проблему, отметьте его как правильный ответ. – Bmuig

+0

правый, только что отметил! – onecoin

0

При создании группы Intent (оба места, конечно), я предлагаю вам попытаться установить тип текста:

int1.setType("text/plain"); 

Посмотрите, если это поможет.