设置我的on click侦听器以获取名为convert的特定按钮时写入
代码在View和v
之间的空格处给出了红色下划线我是Android工作室的新手并尝试通过在Google上搜索来解决此问题,但无济于事。我在哪里以及如何做错?
编辑1:我明确地解决了错误,在onCreate结束时它是一个错位的大括号,在执行实际代码之前有效地终止了onCreate。然而现在它执行得很好,除了一个小小的缺陷,它没有输出。我该怎么办?
代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final EditText inputNum = (EditText) findViewById(R.id.inputNum);
final TextView octNum = (TextView) findViewById(R.id.octNum);
final TextView binNum = (TextView) findViewById(R.id.octNum);
final TextView hexNum = (TextView) findViewById(R.id.octNum);
final Button convert = (Button) findViewById(R.id.convert);
View.OnClickListener listener = new OnClickListener() {
@Override
public void onClick(final View v) {
convert.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
int a = Integer.parseInt(inputNum.getText().toString());
String bin = Integer.toBinaryString(a);
String oct = Integer.toOctalString(a);
String hex = Integer.toHexString(a);
octNum.setText(oct);
binNum.setText(bin);
hexNum.setText(hex);
}
});
}
};
}
@Override
public void onClick(View v) {
}
答案 0 :(得分:2)
convert.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// handle your click event
}
});
修改强>
用户可以按下或点击按钮来执行操作!
活动中按钮的典型用法如下:
public class MyActivity extends Activity {
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.content_layout_id);
final Button button = (Button) findViewById(R.id.button_id);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
}
});
}
}
但是,而不是将OnClickListener
应用于活动中的按钮,您可以使用android:onClick
在XML布局中为按钮指定方法。 您正试图通过setOnClickListener实现某种程度的事情。你是吗?
现在,当用户点击该按钮时,Android系统会调用活动的myClickMethod(View)
(我创建的)方法。为了使其工作,该方法必须是公共的并接受View作为其唯一参数。例如:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="myClickMethod"
android:text="button" />
并在代码中
public void myClickMethod(View view) {
// Perform action
}
答案 1 :(得分:1)
你应该像这样提供一个onClickListener的新实例。
convert.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//Code here
}
});
答案 2 :(得分:0)
调用方法时,不应指定参数类型。编译器要么在其上拥有它,要么输出错误。目前,AndroidStudio认为你正试图传递两个参数,&#34; View&#34;和&#34; v&#34;,对方法并忘记了它们之间的逗号。
将调用替换为convert.setOnClickListener(v)
,错误消息将变得更加清晰,即setOnClickListener未使用View类型的参数定义。