2017-02-21 2 views
0

Ich versuche, eine andere .txt-Datei (in einem rohen Ordner) in einer zweiten Aktivität TextView zu lesen, je nachdem, welche Taste in MainActivity gedrückt wird (der vorherige Aktivität), aber es funktioniert nicht. Ich verwende die .putextras Methode und hier ist mein Code des MainActivity:Eine andere .txt lesen, je nachdem, welche Taste in der vorherigen Aktivität gedrückt wurde

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



     } 
    }); 

Hier ist mein Code des SecondActivity mit dem 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(); 
     } 
    } 

    } 
} 

Antwort

0

Sie sind zum Vergleichen des Bundle Daten in einen String in

if (extradata.equals ("textnumberone"))

Das wird nicht funktionieren, müssen Sie das Extrahieren String Daten zuerst. Versuchen Sie folgendes:

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

Eine andere Sache: Sie setzen den String vom Bundle zu a (nehme ich an) Textview in

vitautori.setText (extradata.getString ("Dieser Text"));

aber ich sehe die Initialisierung von vitautori nirgendwo. Stellen Sie also sicher, dass es initialisiert ist oder dass es abstürzt.

+0

Vielen Dank Bmuig, es funktioniert jetzt. Ich gab dir einen Daumen hoch. – onecoin

+0

Sie sind herzlich willkommen. Wenn die Antwort Ihr Problem gelöst hat, markieren Sie es bitte als die richtige Antwort. – Bmuig

+0

rechts, nur markiert! – onecoin

0

Beim Erstellen der Intent (beide Orte, natürlich), schlage ich vor, Sie versuchen, den Typ Text zu setzen:

int1.setType("text/plain"); 

sehen, ob das hilft.

Verwandte Themen