我一直在尝试很多东西,但仍然不知道发生了什么, 我想将url地址输入到editText然后保存到String中,或者在用户点击按钮后将此文本设置为TextView
然后我得到了
HALP
java.lang.IllegalStateException:无法执行方法 安卓的onClick 在 android.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.onClick
引起:java.lang.reflect.InvocationTargetException
引起:java.lang.NullPointerException:尝试调用虚拟 方法' android.text.Editable android.widget.EditText.getText()'在...上 null对象引用
Button button1;
TextView txtspr;
EditText urlInputEditText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
button1=(Button) findViewById(R.id.button);
txtspr=(TextView)findViewById(R.id.textSprawdzajacy);
urlInputEditText=(EditText) findViewById(R.id.editText);
//(EditText)findViewById(R.id.editText);
}
});
}
public void onClick(View view) {
String n=urlInputEditText.getText().toString();
txtspr.setText(n);
//new DownloadAsync(this,n).execute();
}
答案 0 :(得分:0)
您缺少从资源中为urlInputEditText
分配任何值。
由于此部分仅根据您的代码调用onClick()
:
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
....
button1=(Button) findViewById(R.id.button);
urlInputEditText=(EditText) findViewById(R.id.editText);
将分配移出onCreate()
答案 1 :(得分:0)
<强>原因:强>
你点击button1
但它尚未初始化(初始化在FloatingActionButton
内)
<强>解决方案强> 试试这段代码:
Button button1;
TextView txtspr;
EditText urlInputEditText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
button1=(Button) findViewById(R.id.button);
txtspr=(TextView)findViewById(R.id.textSprawdzajacy);
urlInputEditText=(EditText) findViewById(R.id.editText);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
}
public void onClick(View view) {
String n=urlInputEditText.getText().toString();
txtspr.setText(n);
}