我想创建一个按钮,当点击它时,它会显示另一个意图。
这是代码:
<Button
android:text="Bine ati venit!"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/button1"
android:background="#479fc7"
android:textSize="40dp"
android:textColor="@color/colorPrimaryDark"
android:textStyle="normal|bold|italic"
android:textAllCaps="false"
android:fontFamily="casual"
android:onClick="next_page"/>
和.java类:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_welcome);
}
Button button = (Button) findViewById(R.id.button1);
button.setOnClickListener( new View.OnClickListener()
{
public void onClick (View v){
next_page(v);
}
});
public void next_page(View v) {
Intent intent = new Intent(this, MapsActivity.class);
startActivity(intent);
}
我收到错误: &#34;无法解析符号&#39; setOnClickListener&#39;&#34;,&#34;变量onClick永远不会被使用&#34;,&#34 ;;预期&#34; ...
答案 0 :(得分:1)
您应该将该特定代码段放在OnCreate()
中。这解决了我的问题。
答案 1 :(得分:0)
您可以在xml中使用方法名称声明onClick属性,也可以在onCreate方法中将其设置为programaticaly。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_welcome);
Button button = (Button) findViewById(R.id.button1);
button.setOnClickListener( new View.OnClickListener()
{
public void onClick (View v){
next_page(v);
}
});
}
public void next_page(View v) {
Intent intent = new Intent(this, MapsActivity.class);
startActivity(intent);
}
答案 2 :(得分:0)
您需要像这样更改代码
Button button;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_welcome);
button = (Button) findViewById(R.id.button1);
button.setOnClickListener( new View.OnClickListener(){
public void onClick (View v){
next_page(v);
}
});
}
public void next_page(View v) {
Intent intent = new Intent(this, MapsActivity.class);
startActivity(intent);
}
如果你不在那里使用它,你不需要将View对象传递给next_page()
答案 3 :(得分:0)
//您必须将键入的代码移动到类方法中,并按以下方式工作
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Find the View that shows the numbers category
TextView numbers = (TextView) findViewById(R.id.numbers);
// Set a click listener on that View
numbers.setOnClickListener(new View.OnClickListener() {
// The code in this method will be executed when the numbers View is clicked on.
@Override
public void onClick(View view) {
Intent numbersIntent = new Intent(MainActivity.this, NumberActivity.class);
startActivity(numbersIntent);
}
});
}
答案 4 :(得分:0)
关于错误: “无法解析符号'setOnClickListener'” 可能值得确保通过添加
导入了TextView。import android.widget.TextView;
在文件顶部。
答案 5 :(得分:0)
您只需要更改代码的位置。
@Override
protected void onCreate(Bundle savedInstanceState) {
...
Button button = (Button) findViewById(R.id.button1);
button.setOnClickListener( new View.OnClickListener(){
public void onClick (View v){
next_page(v);
}
});
}
<块引用>
剪切代码并将其粘贴到 OnCreate 方法中。因为在按钮创建后设置 OnClickListener 没有意义。这就是错误发生的原因。