18

ボタンのテキストをプログラムで設定する方法を知っている人はいますか?

問題は、メイン レイアウト (setContentView) からこれを呼び出しているのではなく、asynctask の後に膨張したビューで呼び出していることです。

Button mButton=(Button)findViewById(R.id.contact);
        mButton.setText("number");

ボタンを呼び出している私のレイアウトはこちら

   <Button
       android:id="@+id/contact"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_below="@+id/address"
       android:layout_toLeftOf="@+id/badge"
       android:background="@drawable/ic_btn_call"
       android:textSize="10dp"
       android:textStyle="bold"
       android:textColor="@color/white"/>

ここで私の見解は膨らんでいます

ClubInfo = LayoutInflater.from(getBaseContext()).inflate(R.layout.clubinfocell,
                null);

        TextView TeamNameText = (TextView) ClubInfo.findViewById(R.id.TeamName);
        TeamNameText.setText(teamName);

        TextView AddressText = (TextView) ClubInfo.findViewById(R.id.address);
        AddressText.setText(address1);



        Button mButton=(Button)ClubInfo.findViewById(R.id.contact);
        mButton.setText(telephone);
4

4 に答える 4

31

次に、ビューのオブジェクトを使用して初期化します。

Button mButton = (Button)your_view_object.findViewById(R.id.contact);
mButton.setText("number");

Activity のレイアウト以外のビューを識別しようとするときは、このようにそのビューの参照を渡す必要があります。そうでない場合、Android は で指定したレイアウトからこの要素を探し続けますsetContentView()

たとえば、次のようにビューをインフレートしたとします。

View View = mInflater.inflate(R.layout.gridelement, null);

次に、このビューのオブジェクトを、その膨張したレイアウトに存在するボタンに使用します。

  Button mButton = (Button)View.findViewById(R.id.contact);
于 2012-06-22T11:14:56.443 に答える
2

コードを次のように変更します。

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);//set layout here in which u have add contact in xml
        Button mButton=(Button)findViewById(R.id.contact);
        mButton.setText("number");

編集: \res\layout\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:orientation="vertical" >
<Button
       android:id="@+id/contact"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_below="@+id/address"
       android:layout_toLeftOf="@+id/badge"
       android:background="@drawable/ic_btn_call"
       android:textSize="10dp"
       android:textStyle="bold"
       android:textColor="@color/white"/>
</LinearLayout>
于 2012-06-22T11:04:31.433 に答える
1

あなたmButtonはnullです.so NPE.後でxmlリソースを参照しましたかsetContentView

onCreate(){
...
setContentView(R.layout.yourlayout);

Button mButton=(Button)findViewById(R.id.contact);
mButton.setText("number");

}
于 2012-06-22T11:01:39.690 に答える
0

R.java ファイルの import 文を確認してください

使用するプロジェクトからインポートしたことは確かですか..レイアウト(.xml)ファイルをフォーマットして保存し、同じステートメントを再度入力します

于 2012-06-22T11:04:49.980 に答える