Android遇到的一些问题,时间长了会变杂

1、问:点击一个按钮,弹出一个自定义对话框,对话框里面有3个Button组件,为什么不能通过组件的id来监听组件的事件?一直报错空指针。

答:对话框里的组件是属于view的,所以应该是view.findViewById();view就是那个对话框。

2、问:怎么样在logcat日志里看错误信息?找到错误的代码在哪一行?

答:首先在logcat里找到红色的信息,表示错误信息(其他颜色可以不管),我这里给出一个程序的错误信息:


从上往下看,可以看到第四第五行说空指针错误,下面就是具体的调用错误,因为用到了库,所以一个错会引起很多错误,可以不管,那么继续往下看,倒数第7行头是at com.example.try2.MainActivity这就是我写的的代码,可以在这一行看到,错误发生在83行,那么去这文件的83行找,发现这一句 titleText.setText("超级应用");上一句是TextView titleText = (TextView) findViewById(R.id.titleText);这里的id.titleText是在标题,我把标题隐藏了,所以其实是找不到这个id的,于是就说空指针了。这样就成功用logcat找出了错误,改了之后程序成功运行!

3、我想实现分页(viewpage)和左侧滑动抽屉的结合,点击分页的子页面可以滑入滑出左侧菜单页面,但是在oncreat里对layout设置监听,一直监听不到。

答:在pagerAdapter里面有一个onclick重载函数,对子页面及其上的控件监听要放在这里面,便可以实现对layout的监听。但是呢,这又会导致另一些问题,这个onclick函数并不是对某一个控件而言的,而是对整个分页,也就是说我要对里面的一个按钮A监听,那么得先点最上面的按钮,然后才会进入onclick,然后再按按钮A才能实现A的监听事件。于是把这个监听放在pagerAdapter的构造函数里就不会出现这个问题。

4、怎么对按钮设置不可监听?

答:用button.setEnable(false);那么就完全无法对其操作。包括点击失效,和触摸失效,这个表示只对其展示,是view的属性。如果要不能触发点击时间,但是能触摸就要用setOnclickListener(null);

5、我自定义了一个对话框,想对其进行监听,却无法监听。

答:首先看,自定义的对话框:

View view = mInflater.inflate(R.layout.dialog_mask, null);
Dialog dialog = new Dialog(context);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(view);
dialog.show();

然后我一开始是这样监听:

  LayoutInflater dialogInflater = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);
View dialogView = dialogInflater.inflate(R.layout.dialog_mask, null);
TextView yesTextView = (TextView) dialogView.findViewById(R.id.textView_dialog_mask_yes);

对yesTextView进行onclickListener的监听,但是却监听不到,后来我这样监听:

Window window = dialog.getWindow();
window.setContentView(R.layout.dialog_mask);
TextView yesTextView = (TextView)window.findViewById(R.id.textView_dialog_mask_yes);
yesTextView.setOnClickListener(new OnClickListener() {});

就成功监听到了。

5、我想在一个分页上(用了viewpager的pagerAdapter)初始化一个listview,一直没成功,后来终于知道了。

答: @Override  
        public Object instantiateItem(View arg0, int arg1) {  }要在这里面进行listview的适配,之前放在oncreat()里面就不行。我估计可能是初始化的问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值