2014-11-13 58 views
1

第1天使用Android應用程序開發。所以請原諒我的(也許)愚蠢的問題:我怎麼能把stdout/stderr我的申請到TextViewAndroid:使用stdout的TextView

+0

Java中沒有stdout/stderr。你爲什麼要使用這些東西? – greenapps

回答

1

我想你想重定向發送到的System.out的System.out.println()輸出顯示在您的EditText。爲了實現這一點:

  1. 在活動或片段的佈局定義一個EditText:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      xmlns:tools="http://schemas.android.com/tools" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:paddingLeft="@dimen/activity_horizontal_margin" 
      android:paddingRight="@dimen/activity_horizontal_margin" 
      android:paddingTop="@dimen/activity_vertical_margin" 
      android:paddingBottom="@dimen/activity_vertical_margin" 
      tools:context=".MainActivity"> 

    <EditText 
     android:id="@+id/et_stdout" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:singleLine="false" /> 

</RelativeLayout> 
  • 的onCreate()onCreateView ()方法設置/充氣你的佈局後寫下面的代碼:
  • //Set your layout with setContentView() or inflate it if in fragment 
    
        final EditText editText = (EditText) findViewById(R.id.et_stdout); 
    
        System.setOut(new PrintStream(new OutputStream() { 
    
         ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); 
    
         @Override public void write(int oneByte) throws IOException { 
          outputStream.write(oneByte); 
    
          editText.setText(new String(outputStream.toByteArray())); 
         } 
        })); 
    
        //Testing the System.out stream 
        System.out.println("Test"); 
        System.out.println("Test 2"); 
    

    這會將您使用System.out.println()所做的所有輸出寫入EditText。