我有一个相对布局的Android应用程序,我已经放置了像这样的按钮控件
<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="wrap_content" >
<Button
android:id="@+id/btnCalc"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="708dp"
android:layout_marginLeft="50dp"
android:text="@string/btncalc" />
</RelativeLayout>
为了测试这个事件,我已经像这个
一样点击了这个按钮的点击事件btncalcu=(Button)findViewById(R.id.btnCalc);
btncalcu.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v)
{
Toast.makeText(getBaseContext(), "a", Toast.LENGTH_LONG).show();
//calc();
}
});
问题是,当我运行应用程序时,没有错误或任何异常,但Toast
也没有显示任何异常。任何可以猜测问题是什么.Plz帮助!
答案 0 :(得分:7)
只需尝试这种方式,看看它是否有效,
btncalcu.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Toast.makeText(getBaseContext(), "a", Toast.LENGTH_LONG).show();
}
});
并确保您已导入以下内容,
import android.view.View.OnClickListener;
答案 1 :(得分:2)
试试这个。
btncalcu=(Button)findViewById(R.id.btnCalc);
btncalcu.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "Calculation Button clicked", Toast.LENGTH_LONG).show();
}
});
并导入此行
import android.view.View.OnClickListener;
答案 2 :(得分:1)
试试这种方式:
btncalcu=(Button)findViewById(R.id.btnCalc); btncalcu.setOnClickListener(new View.OnClickListener(){ <---Change `View.Onclick` instead of `Button` @Override public void onClick(View v) { Toast.makeText(YourActivity.this, "a", Toast.LENGTH_LONG).show(); //calc(); } });
并确保您已导入以下内容,
import android.view.View.OnClickListener;
答案 3 :(得分:0)
使用YourActivity.this
作为上下文,请勿使用getBaseContext()
。
btncalcu=(Button)findViewById(R.id.btnCalc);
btncalcu.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v)
{
Toast.makeText(YourActivity.this, "a", Toast.LENGTH_LONG).show();
//calc();
}
});
上下文用于告诉应用程序在哪里显示Toast,因此建议使用当前活动。
答案 4 :(得分:0)
不使用getBaseContext()
,而是使用您拥有v.getContext()
。
分辨率:
Toast.makeText(v.getContext(), "a", Toast.LENGTH_LONG).show();
答案 5 :(得分:0)
btncalcu=(Button)findViewById(R.id.btnCalc);
btncalcu.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v)
{
Toast.makeText(yourActivityclassname.this, "a", Toast.LENGTH_LONG).show();
//calc();
}
});
答案 6 :(得分:0)
像这样使用..
btncalcu..setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "Clicked Button", Toast.LENGTH_LONG).show();
// or
Toast.makeText(YourActivityname.this, "Clicked Button",, Toast.LENGTH_LONG).show();
}
});
适合我。希望这会帮助你...
答案 7 :(得分:0)
解决这个问题的方法:
1
btncalcu=(Button)findViewById(R.id.btnCalc);
btncalcu.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v)
{
Toast.makeText(YourActivityname.this, "a", Toast.LENGTH_LONG).show();
//calc();
}
});
2
btncalcu=(Button)findViewById(R.id.btnCalc);
btncalcu.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v)
{
Toast.makeText(getBaseContext(), "a", Toast.LENGTH_LONG).show();
//calc();
}
});
并且必须检查是否已导入此导入:
android.view.View.OnClickListener;
答案 8 :(得分:0)
使用View.OnClickListener()
代替Button.OnClickListener()
。它将解决您的问题
同样getBaseContext()
无疑对您有用,但最好使用ActivityName.this
作为Toasts
,以防止任何内存泄漏。
答案 9 :(得分:0)
如果您使用listView检查是否已对其应用任何高程。我做了同样的事情,并在listView顶部有浮动按钮,因此按钮永远不会被点击。除非您检查xml文件,否则无法将其删除。我编写的代码仅供您参考。
删除高程并执行onClick。相当合乎逻辑,在你这样做之后工作。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/fullListViewToDo"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:divider="#F3F3F3"
android:dividerHeight="8.0sp"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:drawSelectorOnTop="false"
android:elevation="8dp">
</ListView>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/todo_fragmentContainer">
</RelativeLayout>
<android.support.design.widget.FloatingActionButton android:id="@+id/fab"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="bottom|end" android:layout_margin="@dimen/fab_margin"
android:src="@android:drawable/ic_input_add"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true" />
</RelativeLayout>
答案 10 :(得分:0)
只需1个提示
检查按钮是否已启用
在xml
中android:enabled =“ false”
到
android:enabled =“ true”