2012-10-19 31 views
1

我想點擊第一個活動中的按鈕,第二個活動將文本從原始資源加載到textview中。我認爲它可能通過putextra,getextra方法。我的文本閱讀器代碼textview是這樣的。從RAW資源文本視圖中加載文本

TextView textView = (TextView)findViewById(R.id.textview_data); 

    String data = readTextFile(this, R.raw.books); 
    textView.setText(data); 
} 

public static String readTextFile(Context ctx, int resId) 
{ 
    InputStream inputStream = ctx.getResources().openRawResource(resId); 

    InputStreamReader inputreader = new InputStreamReader(inputStream); 
    BufferedReader bufferedreader = new BufferedReader(inputreader); 
    String line; 
    StringBuilder stringBuilder = new StringBuilder(); 
    try 
    { 
     while ((line = bufferedreader.readLine()) != null) 
     { 
      stringBuilder.append(line); 
      stringBuilder.append('\n'); 
     } 
    } 
    catch (IOException e) 
    { 
     return null; 
    } 
    return stringBuilder.toString(); 
} 

任何一個能幫助我

回答

1

所以在第一個活動按鈕,點擊你打電話的意圖開始第二次活動。如果你在第一個活動要選擇資源ID,那麼我建議你使用這樣的

Button button = (Button) fragmentView.findViewById(R.id.button_id); 
    button.setOnClickListener(new OnClickListener() { 

     public void onClick(View view) { 
      Intent intent = new Intent(FirstActivity.this, SecondActivity.class); 
      intent.putExtra("resource_id", R.raw.books); //R.raw.books or any other resource you want to display 
      startActivity(intent); 
     } 
    }); 

然後在你的第二個活動,你得到這樣

int resourceId = getIntent().getIntExtra("resource_id"); 

該數據,並使用這resourceId而不是R.raw.books

2

請使用下面的代碼從原始文件夾讀取文件數據。

try { 
    Resources res = getResources(); 
    InputStream in_s = res.openRawResource(R.raw.books); 

    byte[] b = new byte[in_s.available()]; 
    in_s.read(b); 
    textView.setText(new String(b)); 
} catch (Exception e) { 
    // e.printStackTrace(); 
    textView.setText("Error: can't show help."); 
}