android小白问一个故障

问题描述

android小白问一个故障

android小白,做一个很简单的动作,第一个activity里面输入的内容传递到第二个activity的textview中去,但是报错如下
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference

第一个activity

public class MainActivity extends AppCompatActivity {
  protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
    }
 public void sendMessage3(View view){
Intent intent=new Intent(this,DisplayMessageActivity.class);
EditText editText = (EditText) findViewById(R.id.edit_message);
String message = editText.getText().toString();
  intent.putExtra(EXTRA_MESSAGE, message);
startActivity(intent);
            }

     public final static String EXTRA_MESSAGE = "com.mycompany.myfirstapp.MESSAGE";

}

第二个activity

  public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Intent intent = getIntent();
        String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);

        TextView tv = (TextView) findViewById(R.id.textView);
        tv.setText(message);

        // Set the text view as the activity layout
        setContentView(R.layout.activity_display_message);

    }

如果我把 tv.setText(message);这句话注销掉,不赋值,第二个页面就能正常打开。

android刚上手小白。。自己研究了半天没研究出什么原因,求大神解答,非常感谢

解决方案

setContentView(R.layout.activity_display_message);放在第三行,其他下移

解决方案二:

textView没找到吧,你可以打印下tv这个值,看是不是null

解决方案三:

setContentView应该放到你实例化组件之前。
你应该这样写:

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

  // Set the text view as the activity layout
        setContentView(R.layout.activity_display_message);

        Intent intent = getIntent();
        String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);

        TextView tv = (TextView) findViewById(R.id.textView);
        tv.setText(message);
    }

解决方案四:

第一次写android博客,现在还是一个小白

解决方案五:

 TextView tv = (TextView) findViewById(R.id.textView);
        tv.setText(message);

        // Set the text view as the activity layout
        setContentView(R.layout.activity_display_message);

顺序换一下,反了,现有布局,再找组件

        // Set the text view as the activity layout
        setContentView(R.layout.activity_display_message);
TextView tv = (TextView) findViewById(R.id.textView);
        tv.setText(message);

解决方案六:

你应该这样写:
// Set the text view as the activity layout
setContentView(R.layout.activity_display_message);//先找到activity布局,然后在查找其中的组件

    Intent intent = getIntent();
    String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
    TextView tv = (TextView) findViewById(R.id.textView);
    tv.setText(message);

按我上面的写法是合适的

解决方案七:

弄好了没?应该好了吧

解决方案八:

空指针异常,因为没能找到你的控件。所以不能用它进行赋值操作。setContentView这句话应该提前,先找到布局才能操作控件

解决方案九:

为什么要每点击一次按钮都要去初始化EditText控件,为什么不在onCreate方法中初始化呢?!

解决方案十:

setContetnView()应该在前面

时间: 2024-09-10 20:25:02

android小白问一个故障的相关文章

c语言-C语言:小白问一个问题

问题描述 C语言:小白问一个问题 代码如下 #include void search(float (*p)[4],int n) { int i,j,k; for(i=0;i<n;i++) { k=0; for(j=0;j<4;j++) if(*(*(p+i)+j)<60) k=1; if(k==1) { printf("the falied student numbers are No.%d ",i+1); for(j=0;j<4;j++) printf(&qu

界面-本人小白问个android的问题

问题描述 本人小白问个android的问题 大概是这样的在一个按钮的onclick里面写了个这个 for(int i = 0:i<10:i++){ 控件.layout(控件.getLeft()+1,控件.getTop()+1,控件.getRight()-1,控件.getBottom()-1): 控件.invalidate(); log("*****,"~~~"): 延时: } logcat里是显示了十次, 但界面上为什么看起来还是只绘制最后一次移动了啊? 对不起,本人新

新手,问一个略显小白的问题

问题描述 新手,问一个略显小白的问题 怎样对一个已经编写好的程序进行二次编写?若已知该程序是有什么编写的,如何进行编写,若未知呢? 解决方案 二次编写就是根据你的需要再次修改编写的代码,比如添加某功能或者删除某功能. 如果不知道程序是怎么编写的,你要自己实现的话,就是初次编写了. 解决方案二: 咦,就我看来,首先你要明白这个程序实现的是什么功能,然后你想通过这个程序,来达到什么效果,然后你以你的思路进行重构代码,或者重写一个程序, 调用那个程序,这就是二次编写了.

c++中字符串-小白,问一个c++字符串问题

问题描述 小白,问一个c++字符串问题 C++中有两个字符串类的变量st1,str2,要求从键盘输入it's a fine day?字符串给str1, 输入yes, it's给str2,最后从屏幕输出it's a fine day?yes, it's给str2,求解答. 解决方案 可以使用gets函数读取有空格的字符串 解决方案二: 关于c++字符串的一个问题 解决方案三: 接收了再输出啊,有什么问题?

问一个MVC提交返回的小白问题

问题描述 现在我有一个form提交到action,action返回可能会有异常之类的什么信息,然后我想在页面上alert出来,怎么做?要在button在onclick的时候用jq.ajax调用action方式,可是如果我submit没有用ajax的什么可以alert么?难道是在return的时候直接"alert('aaa')"??之所以要问submit是因为想用jq的validate的验证,不知道还有没有其他方式?小白问的问题,希望有回答,谢谢! 解决方案 解决方案二: 解决方案三:p

activity-我想问一个关于android代码的问题,本人初学者

问题描述 我想问一个关于android代码的问题,本人初学者 我创建了一个activity,显示一个textview,一个button,和一个edittext,布局和注册活动都做了,为什么打开应用就闪退,提示说打不开 首先是Activity package come.xample.uiactivity; import com.example.uiactivity.R; import android.app.Activity; import android.os.Bundle; import an

路径-求问一个~/和/表示目录的问题

问题描述 求问一个~/和/表示目录的问题 我的代码是这样的 <body style="overflow: hidden; background: url(~/Content/Images/7_7.jpg) no-repeat center center;"> <!----------------------网页的头部 开始-------------------------> <div style="background: url(/Content

导航-android新手问个侧滑栏里面内容显示问题!!!

问题描述 android新手问个侧滑栏里面内容显示问题!!! 5C 那我在MainActivity中实现了侧滑栏,接着想填写侧滑栏的内容,我又新建了一个类leftmenuActivity来实现,但是写好了之后也没有报错就是没有显示内容,不知道拿错了,希望大家帮我分析下,我主要写的是一个主页里面有网格视图,最下面是导航栏,最上面是人的头像,感觉我是2类之间调用时候出错了,谢谢大家了!!!!同理我在填写网格视图的时候也是这样,求求大家帮我下吧,困惑2天了!!!!有谁给我类似的demo也行. 解决方案

mysql-大家好,问一个数据库数据转换问题

问题描述 大家好,问一个数据库数据转换问题 小白做了个服务器,想把数据库查询到的数据转换为json格式之后发送给客户端解析,想问下怎么将查询到的数据转换为json格式??? 解决方案 从数据库得到resultset,遍历放入jsonobject,最后传给客户端即可. 参考:http://blog.csdn.net/xiao__gui/article/details/8612503 解决方案二: http://outofmemory.cn/code-snippet/11346/use-Json-S