Android Программно задающий текст кнопки

Кто-нибудь знает, как программно установить текст кнопки?

вещь: я не вызываю это из основного макета (setContentView), я вызываю его в виде, которое накачивается после асинтезы heres, что я пробовал, но это дает исключение нулевого указателя во второй строке

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

heres my layout, где я вызываю кнопку

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

Ответ 1

Затем используйте свой объект просмотра для его инициализации:

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

При попытке идентифицировать представление, отличное от вашего макета активности, вы должны передать ссылку этого представления, как это. Если Android не будет искать этот элемент из макета, который вы указали в setContentView().

Например, подумайте, что вы завысили такое представление:

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

Затем используйте этот объект View для кнопки, присутствующей в этом раздутом макете:

  Button mButton = (Button)View.findViewById(R.id.contact);

Ответ 2

ваш mButton - null.so NPE. Вы переопределили ресурсы xml после setContentView

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

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

}

Ответ 3

измените свой код как:

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

EDIT: Ваш \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>

Ответ 4

проверить запись импорта файлов R.java

Вы уверены, что у вас есть импорт из проекта, который вы используете. и просто отформатируйте файл макета (.xml), сохраните его и снова введите тот же оператор