如何在ADT android中设置textView?

时间:2014-04-03 06:23:35

标签: android textview adt settext

我是android的初学者,我在ADT v22.6.2中编写了这段代码:

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

    //this is my code
    TextView tbx = (TextView)findViewById(R.id.tbxName);
    tbx.setText("H.H");
}

但是当我启动程序时 - >不幸的是,应用程序已停止

编辑:

<FrameLayout 
xmlns:android="schemas.android.com/apk/res/android"; xmlns:tools="schemas.android.com/tools"; 
android:id="@+id/container" 
android:layout_width="match_parent"
android:layout_height="match_parent" 
tools:context="com.example.t.MainActivity" 
tools:ignore="MergeRootFrame" > 
<TextView 
android:id="@+id/tbx" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="" />
 \</FrameLayout>

请帮帮我。 感谢

2 个答案:

答案 0 :(得分:0)

t未在任何地方初始化。您只需初始化tbxTextView也可能属于PlaceholderFragment

编辑:

表示您的评论,说您有tbx.setText("H.H");

可能textview属于片段,您应该在PlaceholderFragment

中初始化textview
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

    View rootView = inflater.inflate(R.layout.fragment_main, container, false);
    TextView tbx = (TextView)rootView.findViewById(R.id.tbxName);
    tbx.setText("H.H");
    return rootView;
}

编辑2:

您的问题与ADT v22.6.2无关。您可能正在获得NullPointerException

您引用了错误的ID。

<TextView 
android:id="@+id/tbx" 

更改此

 TextView tbx = (TextView)findViewById(R.id.tbxName);

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

答案 1 :(得分:0)

您错误地提供了TextView的身份证明。

只需将您的TextView ID从R.id.tbxName更改为R.id.tbx,就像布局中给出的一样。

而不是

TextView tbx = (TextView)findViewById(R.id.tbxName);

改变它

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