Java 在我的主要活动的文本视图中设置文本

Java 在我的主要活动的文本视图中设置文本,java,android,textview,Java,Android,Textview,也许我会问一个非常愚蠢的问题。事实上,我是一名.net开发人员,现在正转向Android开发。 我有一个文本视图,我想使用setText()将文本放入其中 My MainActivity.java: public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(

也许我会问一个非常愚蠢的问题。事实上,我是一名.net开发人员,现在正转向Android开发。 我有一个文本视图,我想使用
setText()
将文本放入其中

My MainActivity.java:

public class MainActivity extends ActionBarActivity {

    @Override

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        if (savedInstanceState == null) {
            getSupportFragmentManager().beginTransaction()
                    .add(R.id.container, new PlaceholderFragment())
                    .commit();
        }

        TextView txView = (TextView) findViewById(R.id.lblStatus);
        txView.setText("Status Test");
    }
XML代码是:

<TextView
            android:id="@+id/lblStatus"
            android:layout_width="300dp"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@id/tvStatusTag"
            android:layout_below="@id/lblImei" />

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.app" >

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.app.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
<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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="#e5e5e5"
tools:context="com.example.app.MainActivity$PlaceholderFragment" >

<TextView
    android:id="@+id/textView"
    android:textColor="#FF0000"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.app.MainActivity"
tools:ignore="MergeRootFrame" />
<?xml version="1.0" encoding="utf-8"?>

代码

     public class MainActivity extends ActionBarActivity
{
    TextView txView;
      @Override

      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
         txView = (TextView) findViewById(R.id.lblStatus);
  check();
    }

     public void check()
     {
            if (savedInstanceState == null) {
              getSupportFragmentManager().beginTransaction()
                      .add(R.id.container, new PlaceholderFragment())
                      .commit();

               txView.setText("Status Test");
             }
            else
          {

          txView.setText("Status Test1");
         }
     }
      }
XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
      android:background="#FFE7DB"  >
<TextView
            android:id="@+id/lblStatus"
            android:layout_width="300dp"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@id/tvStatusTag"
            android:layout_below="@id/lblImei" />

</RelativeLayout>

代码

     public class MainActivity extends ActionBarActivity
{
    TextView txView;
      @Override

      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
         txView = (TextView) findViewById(R.id.lblStatus);
  check();
    }

     public void check()
     {
            if (savedInstanceState == null) {
              getSupportFragmentManager().beginTransaction()
                      .add(R.id.container, new PlaceholderFragment())
                      .commit();

               txView.setText("Status Test");
             }
            else
          {

          txView.setText("Status Test1");
         }
     }
      }
XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
      android:background="#FFE7DB"  >
<TextView
            android:id="@+id/lblStatus"
            android:layout_width="300dp"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@id/tvStatusTag"
            android:layout_below="@id/lblImei" />

</RelativeLayout>

Ravi我认为您使用的是appcompat库和4.4 api级别,所以如果我是对的,那么布局文件夹中有两个布局文件,一个是simple activity xml,另一个是fragment.xml


我认为您是在activity.xml中声明这个TextView,而不是在Fragment.xml文件中,所以在运行时您会得到null异常,所以请在Fragment.xml中声明它。

Ravi我认为您使用的是appcompat库和4.4 api级别,若我是对的,那个么在布局文件夹中有两个布局文件,一个是简单活动xml,另一个是fragment.xml


我认为您是在activity.xml中声明此TextView,而不是在片段xml文件中,所以在运行时您会得到null异常,所以请在Fragment.xml中声明此TextView。

我在下面编辑了此代码,对于Set-TextView,它工作正常。。。 (如果您试图扩展ActionBarActivity,则必须正确导入app_compact_v7和android.support jar) 如果仍然显示错误,请从eclipse中的项目属性刷新项目生成

MainActivity.java:

 public class MainActivity extends Activity {       
 @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    TextView txView = (TextView) findViewById(R.id.lblStatus);
    txView.setText("Status Test");
}
}

activity_main.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:gravity="center"
      android:orientation="vertical" >

<TextView
    android:id="@+id/lblStatus"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/hello" />

  </LinearLayout>

我在下面编辑了这段代码,它在Set textview中运行良好。。。 (如果您试图扩展ActionBarActivity,则必须正确导入app_compact_v7和android.support jar) 如果仍然显示错误,请从eclipse中的项目属性刷新项目生成

MainActivity.java:

 public class MainActivity extends Activity {       
 @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    TextView txView = (TextView) findViewById(R.id.lblStatus);
    txView.setText("Status Test");
}
}

activity_main.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:gravity="center"
      android:orientation="vertical" >

<TextView
    android:id="@+id/lblStatus"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/hello" />

  </LinearLayout>

试试这个

  • 您应该声明初始化片段中的文本视图
  • 因为您没有使用方法保存活动实例,所以您的活动实例状态必须为null
  • 您应该在fragment_main.xml中添加TextView组件
  • fragment_main.xml

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.app" >
    
        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <activity
                android:name="com.example.app.MainActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    
    </manifest>
    
    <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:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:background="#e5e5e5"
    tools:context="com.example.app.MainActivity$PlaceholderFragment" >
    
    <TextView
        android:id="@+id/textView"
        android:textColor="#FF0000"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.app.MainActivity"
    tools:ignore="MergeRootFrame" />
    
    <?xml version="1.0" encoding="utf-8"?>
    
    结果为

    试试这个

  • 您应该声明初始化片段中的文本视图
  • 因为您没有使用方法保存活动实例,所以您的活动实例状态必须为null
  • 您应该在fragment_main.xml中添加TextView组件
  • fragment_main.xml

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.app" >
    
        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <activity
                android:name="com.example.app.MainActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    
    </manifest>
    
    <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:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:background="#e5e5e5"
    tools:context="com.example.app.MainActivity$PlaceholderFragment" >
    
    <TextView
        android:id="@+id/textView"
        android:textColor="#FF0000"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.app.MainActivity"
    tools:ignore="MergeRootFrame" />
    
    <?xml version="1.0" encoding="utf-8"?>
    
    结果为


    我只是从fragment\u main.xml中删除了TextView组件(lblStatus),并在MainActivity.java中做了一些更改。代码如下

    public class MainActivity extends ActionBarActivity {
    
        @Override
    
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
           /* if (savedInstanceState == null) {
                getSupportFragmentManager().beginTransaction()
                        .add(R.id.container, new PlaceholderFragment())
                        .commit();
            } */
    
    
            TextView txView = new TextView(this);
            txView.setText("Status Text");
            setContentView(txView);
        }
    

    而且它工作得非常好。。与其他答案不同,因为它非常简单:)

    我只是从fragment\u main.xml中删除了文本视图组件(lblStatus),并在MainActivity.java中做了一些更改。代码如下

    public class MainActivity extends ActionBarActivity {
    
        @Override
    
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
           /* if (savedInstanceState == null) {
                getSupportFragmentManager().beginTransaction()
                        .add(R.id.container, new PlaceholderFragment())
                        .commit();
            } */
    
    
            TextView txView = new TextView(this);
            txView.setText("Status Text");
            setContentView(txView);
        }
    


    而且它工作得非常好。。因为答案非常简单:)

    试试这个。这可能会一直持续到不运行我正在发布Logcat现在我已经发布了我的Android.Manifest.xml请检查是的,我刚刚开始Android编程,这是我在“Hello Word”之后的第二个程序。您需要处理xml。您没有使用任何未提及的布局xml类型尝试此。这可能会一直持续到不运行我正在发布Logcat现在我已经发布了我的Android.Manifest.xml请检查是的,我刚刚开始Android编程,这是我在“Hello Word”之后的第二个程序。您需要处理xml。您没有使用任何未提及的布局xml类型“自动停止”的应用程序是否带有LogCat异常堆栈跟踪?@TheCapn请检查LogCat是否可以放置activity_main.xml?@SirSC,我已发布AndroidManifest.xml请检查它…是否有“自动停止”的应用程序带有LogCat异常堆栈跟踪?@TheCapn请检查LogCat是否可以放置活动\u main.xml?@SirSC,我已经发布了AndroidManifest.xml请检查…我从一开始就在Fragment\u main.xml中保存TextView组件。我刚刚在MainActivity.java和it workd中做了上述更改。你能简单解释一下吗?嗨,layout.xml是一个用户前端视图,而活动是一种屏幕行为。因此,我们必须集成xml和活动。因此,必须使用setContentView()方法在相应的活动中调用layout.xml。除非您可能得到空指针异常,否则您在活动的行为中没有调用相应的布局。我从一开始就在Fragment_main.xml中保存TextView组件。我刚刚在MainActivity.java和it workd中做了上述更改。你能简单解释一下吗?嗨,layout.xml是一个用户前端视图,而活动是一种屏幕行为。因此,我们必须集成xml和活动。因此,必须使用setContentView()方法在相应的活动中调用layout.xml。除非您可能得到空指针异常,否则您在活动的行为中没有调用相应的布局。请在onCreateView中使用此选项,其中您正在膨胀片段视图rootView=inflater.inflate(R.layout.fragment_main,container,false);TextView tv=(TextView)rootView.findviewbyd(R.id.tv);tv.setText(“你好世界”);我将
    @Override public void onActivityCreated(Bundle savedInstanceState){super.onActivityCreated(savedInstanceState);myText.setText(“New Te”)标记为注释