有人知道如何以编程方式设置按钮的文本吗?
事情是我不是从主布局(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);
答案 0 :(得分:27)
然后使用视图的对象初始化它:
Button mButton = (Button)your_view_object.findViewById(R.id.contact);
mButton.setText("number");
当您尝试识别Activity的布局以外的视图时,您必须像这样传递该视图的引用。如果不是,Android会继续从您在setContentView()
中提供的布局中查找此元素。
例如,假设您已经夸大了这样的视图:
View View = mInflater.inflate(R.layout.gridelement, null);
然后将此View的对象用于该膨胀布局中的Button:
Button mButton = (Button)View.findViewById(R.id.contact);
答案 1 :(得分: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>
答案 2 :(得分:1)
您的mButton
为null.so NPE。您是否在setContentView
onCreate(){
...
setContentView(R.layout.yourlayout);
Button mButton=(Button)findViewById(R.id.contact);
mButton.setText("number");
}
答案 3 :(得分:0)
检查R.java文件导入语句
您确定要导入您使用的项目吗? 只需格式化您的布局(.xml)文件保存它,然后再次键入相同的语句