Android中findViewById获取控件返回为空问题怎么解决_Android

在Android程序中,有时候需要加载非原来activity中xml布局中的控件,来使Android程序的界面更加丰富。

  我本身是在使用ViewFlipper中遇到的问题。

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
inflater=(LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);
View view=inflater.inflate(R.layout.myview, null);
ImageView view=(ImageView)findViewById(R.id.imageview);
} 

众所周知,我们通过调用findViewById来获取布局中的控件元素,但是在我运行的时候发现出现了 java.lang.NullPointerException的错误。一开始我以为是获取的view还是为空,但最终发现的是获取的ImageView是空的。因为在R.java中已经成功生成myview和imageview的id。经过一些时间的搜索查询,发现我们在重写Adapter的getView()函数时,获取一个控件元素是通过

holder.imageView=(ImageView)convertView.findViewById(R.id.imageView); 

这样的形式去获取的。

  所以我突然想到,如果在activity中直接调用findViewById方法,它的完整形式是this.findViewById().而我所需要的控件是不存在本身activity的布局中的,所以在获取时改为

ImageView view=(ImageView)view.findViewById(R.id.imageview); 

即通过控件所在的view调用findViewById方法,就可以获取到正确的控件了。

  这个本身不是什么大问题,但是如果不注意还是会花费一定的时间,在此我只是为自己做好笔记,也为广大开发Android的朋友提供便利。

以上所述是小编给大家介绍的Android中findViewById获取控件返回为空问题的解决办法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索android
, findviewbyid
findviewbyid返回空
findviewbyid返回null、findviewbyid、findviewbyid用法、findviewbyid报错、android findviewbyid,以便于您获取更多的相关知识。

时间: 2024-09-23 23:29:45

Android中findViewById获取控件返回为空问题怎么解决_Android的相关文章

Android中findViewById获取控件返回为空问题怎么解决

在Android程序中,有时候需要加载非原来activity中xml布局中的控件,来使Android程序的界面更加丰富. 我本身是在使用ViewFlipper中遇到的问题. public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); inflater=(LayoutInflater)getSystemService(LAYO

界面-Android中布局的控件的位置的问题

问题描述 Android中布局的控件的位置的问题 Android中layout_gravity和layout_marginTop同时设置的话那界面是怎么变化? 在线性布局下,例如一个textView,其android:layout_gravity_设为bottom,android:layout_margin Top_设为100sp,然后其位置就如图所示 然后把android:layout_gravity_设为top,其位置又如图: 但是我的layout_marginTop_一直都设为100sp,

Android中shape定义控件的使用_Android

Android中常常使用shape来定义控件的一些显示属性,今天看了一些shape的使用,对shape有了大体的了解,稍作总结: 先看下面的代码: <shape> <!-- 实心 --> <solid android:color="#ff9d77"/> <!-- 渐变 --> <gradient android:startColor="#ff8c00" android:endColor="#FFFFFF

android控件-android中xml设置控件的属性和java文件里设置控件的属性有何不同

问题描述 android中xml设置控件的属性和java文件里设置控件的属性有何不同 android中xml设置控件设置的属性和java文件里设置控件的属性有何不同 是不是java文件里设置可以改变动态的改变控件位置,文字颜色,文字大小 而在xml文件设置之后就无法改变 那具体在java文件设置的属性是如何改变的呢 解决方案 java中可以重新设置去改变xml的设置.但是xml不能去改变java中的设置. 解决方案二: 你可以这样理解,xml设置以后基本不会改变,如果会改变,就要在java里面设

Android中shape定义控件的使用

Android中常常使用shape来定义控件的一些显示属性,今天看了一些shape的使用,对shape有了大体的了解,稍作总结: 先看下面的代码: <shape> <!-- 实心 --> <solid android:color="#ff9d77"/> <!-- 渐变 --> <gradient android:startColor="#ff8c00" android:endColor="#FFFFFF

Android 中读取SD卡文件时抛出NullPointerException错误解决办法

Android 中读取SD卡文件时抛出NullPointerException错误解决办法 相关源码: package com.example.musicplayer; import java.io.File; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.os.Environment; import

Android中的Button控件

Android中Button控件应该算作是比较简单的控件,然而,它的使用频率却是非常的高,今天,我在这里总 结了三种常用的点击Button实现其功能的方法. 1.很多时候,我们在用到Button控件时,往往都是" 一次性"使用,这时,为了方便起见,我们一般采用的是匿名内部类的方法,形如这样: button1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO

Android中的基本控件(上)--TextView控件

TextView组件的主要功能是用于显示文本,此类定义. java.lang.Object  ↳android.view.View  ↳android.widget.TextView <TextView>组件的常用属性及对应方法  <TextView  定义文本显示框组件 android:id="@+id/mytext1"  定义此文本组件的ID android:layout_width="fill_parent"  宽度为整个容器的宽度 a

Android中的基本控件(上)--按钮控件Button

Button类的继承结构: java.lang.Object  ↳ android.view.View   ↳android.widget.TextView   ↳android.widget.Button  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" andro