1

출력을 텍스트보기로 표시하려고합니다. 그러나 그것을 표시 할 수 없습니다. 나는 내 프로그램에 표시되지 않는 y를 모른다. package com.iiitb.nikhil.sindhu;TextView가 표시되지 않습니다. 하지만 logcat에 표시 될 때 모든 것이 잘 작동합니다.

import java.io.BufferedReader; 
import java.io.DataInput; 
import java.io.DataInputStream; 
import java.io.DataOutputStream; 
import java.io.IOException; 
import java.io.InputStreamReader; 

import android.app.Activity; 
import android.os.Bundle; 
import android.util.Log; 
import android.widget.TextView; 
    import java.util.*; 
import android.util.*; 
    public class LinuxShellCommandAndroidProgramActivity extends Activity { 
/** Called when the activity is first created. */ 

TextView tv; 
public void onCreate(Bundle savedInstanceState) { 
    tv=new TextView(this); 
    super.onCreate(savedInstanceState); 

    try { 
     Process process = Runtime.getRuntime().exec("/system/bin/su"); 
     DataOutputStream os = new DataOutputStream(process.getOutputStream()); 
     DataInputStream is=new DataInputStream(process.getInputStream()); 

     //os = new DataOutputStream(process.getOutputStream()); 
     os.writeBytes("/system/bin/chmod 600 /data/data/newfile\n"); 
     os.writeBytes("cd /data/data/dalvik-cache/\n"); 
     os.writeBytes("/system/bin/ls -l /data/dalvik-cache\n"); 
     String output=new String(); 

     tv.setText("hii \n"); 
     //setContentView(tv); 
     String temp = new String(); 
      while((output=is.readLine())!=null) 
      { 
       Log.i("Check ",output); 
       tv.append(output); 
      } 

      setContentView(tv); 
      os.flush(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
    } 


    } 
} 
+0

먼저 확인 파일이이 방법으로 텍스트 뷰를 넣을 수 있습니다, linerlayout 태그 betweean이 코드를 삽입 해당 위치에 존재하지 않으면 예외를 throw하고 tv.setText ("hii \ n")를 실행하기 전에 존재합니다. statement ... –

답변

2

는 텍스트 뷰에 LayoutParameter를 설정하거나 당신의 main.xml에 파일의 레이아웃을 가지고 같은 슈퍼 클래스를 호출 한 후

tv=new TextView(this);을 수정 됨 layout.addView(textview);

하여 해당 레이아웃에 텍스트 뷰를 추가 이

super.onCreate(savedInstanceState); 
    tv=new TextView(this); 
+0

params를 언급하지 않으면 match_parent라고 가정 할 것이므로 문제가 아닌 것으로 생각합니다. –

+0

맞 겠지만 그 증거를 추가로 제공 할 수 있습니까? 'View'와'TextView' 코드는 물론 문서도 건너 뛰었습니다. 아무 데나 명시된 * (코드에서보기를 만들 때) *을 보지 못했습니다. –

+0

http://developer.android.com/reference/android/app/Activity.html#setContentView(android.view.View)를 확인하십시오. –

1

당신은 오 그

public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    tv=(TextView) findViewById(R.id.tv); 

.... 

오픈 고해상도/레이아웃/main.xml에 는

<TextView android:text="Text box" android:layout_width="60dp" android:id="@+id/tv" android:layout_height="wrap_content"></TextView> 
0

당신이

ScrollView sv = new ScrollView(this); 
    LinearLayout ll = new LinearLayout(this); 
    ll.setOrientation(LinearLayout.VERTICAL); 
    sv.addView(ll); 

    TextView tv = new TextView(this); 

    tv.setText("Dynamic layouts ftw!"); 

    ll.addView(tv); 
    this.setContentView(sv); 
관련 문제