TextView不显示。但是当在logcat中显示时,每件事都可以正常工作

时间:2011-09-17 11:43:16

标签: android android-layout android-emulator android-widget android-manifest

我正在尝试在文本视图中显示输出。但无法显示它。我不知道它在我的程序中没有显示      包com.iiitb.nikhil.sindhu;

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


   }
 }

3 个答案:

答案 0 :(得分:1)

在Textview上设置LayoutParameter,或者只在main.xml文件中设置一个布局,然后在layout.addView(textview);

的布局中添加textview

<强> EDITED

在调用superClass后取tv=new TextView(this); 像这样

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

答案 1 :(得分:1)

您必须更改为

public void onCreate(Bundle savedInstanceState) {

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

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

....

并打开res / layout / main.xml 在linelayout标签之外插入此代码,

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

答案 2 :(得分:0)

你可以通过这种方法放置textview

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