学习android的每一天
学习的第一天记录
说实话,写了好多天的代码了,结果这次犯了一个憨憨一样的错误,话不多说,直接放代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:id="@+id/bn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxLines="2"/>
<EditText
android:id="@+id/ttt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/bn"/>
</RelativeLayout>
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private EditText text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button but=(Button)findViewById(R.id.bn);
EditText text=(EditText)findViewById(R.id.ttt);
but.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.bn:
String string=text.getText().toString();
Toast.makeText(MainActivity.this,string,Toast.LENGTH_SHORT).show();
break;
default:
Log.d("MainActivity", "Debug");
break;
}
}
}
就是在这个地方我傻了,点击按键程序就崩溃,我人都快没有了,还产生了
EditText.getText()' on a null object reference
这样的报错,我去搜了下,发现是我findViewById发生错误了,我左思右想也没看出哪里错了,然后,我看了一下代码,发现:
EditText text=(EditText)findViewById(R.id.ttt);
欸嘿,我是什么神奇的宝宝,绝了!
所以正确代码是:
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private EditText text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button but=(Button)findViewById(R.id.bn);
text=(EditText)findViewById(R.id.ttt);
but.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.bn:
String string=text.getText().toString();
Toast.makeText(MainActivity.this,string,Toast.LENGTH_SHORT).show();
break;
default:
Log.d("MainActivity", "Debug");
break;
}
}
}
这样就可以实现点击按钮,调用Toast显示输入的数据了。