package com.parseador.prueba;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
public class main extends Activity {
/** Called when the activity is first created. */
//private Button botonParsear;
private EditText link;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//Button botonParsear = (Button) findViewById(R.id.BotonParsear);
//EditText link = (EditText) findViewById(R.id.Link);
}
public void onParsearClick(View botonParsear) {
link.setText("Siii");
}
}
您好。
运行此代码时出现问题。它保持着FCing。尝试改变评论的内容,但没有办法使按钮工作。
如果你能告诉我我做错了什么,我将不胜感激。
提前致谢。
Ps:xml文件确实有按钮上的方法。这是它的代码(强调号码):
android:layout_height="wrap_content"
android:text="@string/parse"
android:textSize="20sp"
android:layout_width="wrap_content"
android:layout_gravity="center"
android:onClick="onParsearClick"
android:id="@+id/BotonParsear"
答案 0 :(得分:1)
该行
EditText link = (EditText) findViewById(R.id.Link);
几乎就在那里。您正在声明一个新的局部变量link
,它会影响link
类中的实例变量main
。因此,当您将局部变量分配给位于View
的{{1}}实例时,它会超出范围,并在findViewById
返回后不再存在。 onCreate
读取的link
变量仍然是onParsearClick
,无法解除引用。因此,对null
的调用失败。
更改该行,使其成为简单的赋值语句而不是变量声明:
link.setText
您可能希望了解Java未来的范围规则。
答案 1 :(得分:0)
你的例子(修改过)对我有用......
public void onParsearClick(View botonParsear) {
Toast.makeText(this, "it is working", Toast.LENGTH_LONG).show();
}
查看是否有任何此主题适用于您 - onClick won't fire on ImageView