findViewById() 异常问题.大侠解决一下

sjt3377 2011-08-24 11:40:43
main.xml 代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout android:orientation="vertical" android:id="@+id/loginRoot"
android:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout android:orientation="vertical" android:id="@+id/LinearLayout01"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_weight="1.0"
android:background="@drawable/default_bg">
<RelativeLayout android:id="@+id/RelativeLayout02"
android:background="@drawable/login_back" android:paddingTop="21.0px"
android:paddingBottom="10.0px" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_marginLeft="15.0px"
android:layout_marginTop="62.0px" android:layout_marginRight="15.0px">
<ImageView android:id="@+id/faceImg" android:background="@drawable/login_head"
android:layout_width="wrap_content" android:layout_height="wrap_content" />
<EditText android:id="@+id/login_edit_account"
android:background="@drawable/qq_edit_login" android:paddingLeft="45.0sp"
android:saveEnabled="true" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_marginLeft="5.0dip"
android:layout_marginTop="5.0dip" android:layout_marginRight="5.0dip"
android:layout_marginBottom="5.0px" android:hint="@string/strInputAccHint"
android:maxLength="10" android:layout_toRightOf="@+id/faceImg"
android:layout_alignParentTop="true" android:inputType="number" />
<TextView android:textSize="16.0dip" android:textColor="#ff3f3f3f"
android:gravity="center_vertical" android:id="@+id/TextView01"
android:paddingLeft="7.0sp" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_marginRight="15.0sp"
android:text="@string/strAccInputLabel" android:layout_alignLeft="@+id/login_edit_account"
android:layout_alignTop="@+id/login_edit_account"
android:layout_alignBottom="@+id/login_edit_account" />
<ImageButton android:id="@+id/ImageButton02"
android:background="@drawable/more_select" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_marginRight="1.0dip"
android:layout_alignTop="@+id/login_edit_account"
android:layout_alignRight="@+id/login_edit_account"
android:layout_alignBottom="@+id/login_edit_account" />
<EditText android:id="@+id/login_edit_pwd"
android:background="@drawable/qq_edit_login" android:paddingLeft="45.0sp"
android:saveEnabled="true" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_marginRight="1.0dip"
android:maxLength="16"
android:layout_below="@+id/login_edit_account"
android:layout_alignLeft="@+id/login_edit_account"
android:layout_alignRight="@+id/login_edit_account"
android:inputType="textPassword" />
<TextView android:textSize="16.0dip" android:textColor="#ff3f3f3f"
android:gravity="center_vertical" android:id="@+id/TextView02"
android:paddingLeft="7.0sp" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="@string/strPswInputLabel"
android:layout_alignTop="@+id/login_edit_pwd"
android:layout_alignRight="@+id/TextView01"
android:layout_alignBottom="@+id/login_edit_pwd" />

<!-- <CheckBox android:textSize="16.0sp" android:textColor="#ff222222"
android:id="@+id/login_cb_savepwd" android:paddingLeft="25.0px"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:checked="true" android:button="@drawable/qq_btn_check"
android:text="@string/opt_remember" android:layout_alignBaseline="@+id/login_btn_login" />
-->
<Button android:id="@+id/login_btn_login" android:layout_width="130.0px"
android:layout_height="42.0px" android:layout_marginTop="7.0px"
android:layout_marginRight="12.0dip" android:text="@string/login"
android:layout_below="@+id/TextView02"
android:layout_alignParentRight="true" />
</RelativeLayout>
<!-- <TableLayout android:id="@+id/TableLayout01"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_marginLeft="20.0px" android:layout_marginRight="20.0px"
android:stretchColumns="1">
<TableRow>
<CheckBox android:textColor="#7fffffff" android:id="@+id/login_cb_visible"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="@string/opt_hideLogin" style="@style/MyCheckBox" />
<CheckBox android:textColor="#7fffffff"
android:layout_gravity="right" android:id="@+id/login_cb_openvibra"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="@string/opt_openVibra" style="@style/MyCheckBox" />
</TableRow>
<TableRow>
<CheckBox android:textColor="#7fffffff" android:id="@+id/login_cb_receivegroupmsg"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="@string/opt_acceptGroupMsg" style="@style/MyCheckBox" />
<CheckBox android:textColor="#7fffffff"
android:layout_gravity="right" android:id="@+id/login_cb_quite"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="@string/opt_silent" style="@style/MyCheckBox" />
</TableRow>
</TableLayout> -->
</LinearLayout>
<RelativeLayout android:id="@+id/RelativeLayout01"
android:background="@drawable/bottom" android:layout_width="fill_parent"
android:layout_height="44.0dip">
<ImageButton android:id="@+id/login_option"
android:background="@drawable/option" android:clickable="true"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="13.0dip" android:layout_marginTop="2.0dip"
android:layout_centerVertical="true" />
</RelativeLayout>
</LinearLayout>


java代码
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.loginpage);

// LayoutInflater inflater=LayoutInflater.from(getApplicationContext());
// layout=(RelativeLayout)inflater.inflate(R.layout.loginpage, null);


//错误就在这里 Button login_btn_login = (Button) findViewById(R.id.login_btn_login);
// login_btn_login.setOnClickListener(bl);
}

报异常错误.找了很多办法都不对.请大侠指教.学习中......
...全文
295 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
fontlose 2011-08-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sjt3377 的回复:]
楼上的那怎么办呢?
[/Quote]
我不知道你这代码要实现什么功能?这样试试


LayoutInflater inflater=LayoutInflater.from(getApplicationContext());
layout=(RelativeLayout)inflater.inflate(R.layout.loginpage, null);
//错误就在这里
Button login_btn_login = (Button) layout.findViewById(R.id.login_btn_login);
login_btn_login.setOnClickListener(bl);


Button login_btn_login = (Button) layout.findViewById(R.id.login_btn_login);
izj 2011-08-24
  • 打赏
  • 举报
回复
新建一个工程在做一遍,对比,看看是不是环境问题,顺便问一下,你的R文件能正常显示吗?

findviewbyID是从R文件中取得的id~检查一下名字和R文件是否正常
perfe_ct 2011-08-24
  • 打赏
  • 举报
回复
在调用findViewById(XXX)之前加上setContentView(R.layout.main);
sjt3377 2011-08-24
  • 打赏
  • 举报
回复
我怀疑是布局的问题.就是报异常
sjt3377 2011-08-24
  • 打赏
  • 举报
回复
哦.说错了
setContentView(R.layout.loginpage);
那个xml也是在loginpage.xml
我写错了.不好意思
futurexuxun 2011-08-24
  • 打赏
  • 举报
回复
二楼正解。

LayoutInflater LayoutInflater = (LayoutInflater) ActivityMain.this
.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
View mView = LayoutInflater.inflate(R.layout.main, null);

Button login_btn_login = (Button)mView.findViewById(R.id.login_btn_login);

其中ActivityMain修改为自己的Activity名称。
sjt3377 2011-08-24
  • 打赏
  • 举报
回复
楼上的那怎么办呢?
fontlose 2011-08-24
  • 打赏
  • 举报
回复
你用的是loginpage这个布局文件 setContentView(R.layout.loginpage);
login_btn_login却是在main.xml定义的 肯定找不到了login_btn_login 会返回Null报空指针异常

sniffer12345 2011-08-24
  • 打赏
  • 举报
回复
什么异常错误?找不到login_btn_login还是?如果是找不到login_btn_login,那检查下import那里,是不是把android.R import 进来了,如果是的话删掉,然后ctrl+o,选择你工程自己的R
小裴同学 2011-08-24
  • 打赏
  • 举报
回复
RelativeLayout layout=(RelativeLayout)inflater.inflate(R.layout.loginpage, null);
fianl Button login_btn_login = (Button) layout.findViewById(R.id.login_btn_login);
login_btn_login.setOnClickListener(bl);

反正这样是没问题的,在出错就是你别的地方的问题。我觉得是楼主的思路有问题,你这是好像不用LayoutInflater 吧。直接Button login_btn_login = (Button) findViewById(R.id.login_btn_login);
login_btn_login.setOnClickListener(bl);不就可以么
敌意 2011-08-24
  • 打赏
  • 举报
回复
Button login_btn_login = (Button) layout.findViewById(R.id.login_btn_login);
login_btn_login.setOnClickListener(bl);

把报的异常贴上来。
sjt3377 2011-08-24
  • 打赏
  • 举报
回复
LayoutInflater inflater=LayoutInflater.from(getApplicationContext());
layout=(RelativeLayout)inflater.inflate(R.layout.loginpage, null);
//错误就在这里
Button login_btn_login = (Button) layout.findViewById(R.id.login_btn_login);
login_btn_login.setOnClickListener(bl);

这是网上找的.我试了还是不行


sjt3377 2011-08-24
  • 打赏
  • 举报
回复
我是做了一个登录页面.模仿QQ登录界面.然后做登录程序的时候.发现findViewById 异常

我查网上的方法都不行
sjt3377 2011-08-24
  • 打赏
  • 举报
回复
不行.我也试了.那样也不行
现在 findViewById(R.id.login_btn_login); 好像取不出来东西

并工程都正常.没有问题

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧