Android-为什么我绑定按钮监听器没有反应?

需求定制 需求定制 主题:1050 回复:2283

Android-为什么我绑定按钮监听器没有反应?

想挽留 发布于 2017-06-20 字数 4990 浏览 1135 回复 1

代码如下.不知道为神什么我的imageButton绑定监听器之后都没有效果,完全跳不进监听器里面.请问是不是代码出什么问题了呢?

package qinXianYuZou.ZhiZuo.peizhi;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

import qinXianYuZou.tuo.R;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.Typeface;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.Toast;

public class Mo_Ren extends Activity
{

Bitmap bitmap;
Bitmap icon;
ImageView igv_效果;
String string_文字;
String imageFilePath;
ImageButton igb_queren;
final static String tupianPath = Environment.getExternalStorageDirectory()
+ "/sys/FuZhuGTXT/ZiZhi/";
String filename;

@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.wu_zhao_pian);

igv_效果 = (ImageView) findViewById(R.id.moren_igv_效果);
igb_queren = (ImageButton) findViewById(R.id.moren_igb_queren);
igb_queren.setOnClickListener(new OnClickListener()
{

public void onClick(View v)
{
try
{
saveMyBitmap(icon);
Toast.makeText(Mo_Ren.this, "保存完毕", Toast.LENGTH_SHORT).show();
finish();
}
catch (IOException e)
{
e.printStackTrace();
}
}
});

string_文字 = "你好";
filename = string_文字 + ".png";

// imageFilePath = Environment.getExternalStorageDirectory()
// .getAbsolutePath() + "/sys/FuZhuGTXT/ZiZhi/" + filename;
// File imageFile = new File(imageFilePath);

bitmap = BitmapFactory.decodeResource(getResources(),
R.drawable.zidingyi_beijing);
int i_长 = bitmap.getWidth(), i_高 = bitmap.getHeight();
icon = Bitmap.createBitmap(i_长, i_高, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(icon);

Paint paint_底图 = new Paint();
paint_底图.setDither(true);
paint_底图.setFilterBitmap(true);

Rect src = new Rect(0, 0, i_长, i_高);
Rect dst = new Rect(0, 0, i_长, i_高);
// 将photo 缩放或则扩大到 dst使用的填充区photoPaint
canvas.drawBitmap(bitmap, src, dst, paint_底图);
Paint paint_文字 = new Paint(Paint.ANTI_ALIAS_FLAG
| Paint.DEV_KERN_TEXT_FLAG);
paint_文字.setTextSize(30);
paint_文字.setTypeface(Typeface.createFromAsset(getAssets(),
"ZiTi/kai_ti.ttf"));
paint_文字.setColor(Color.BLACK);
canvas.drawText(string_文字, 20, 30, paint_文字);
canvas.save(Canvas.ALL_SAVE_FLAG);
canvas.restore();
igv_效果.setImageBitmap(icon);

}

class igb_确认 implements OnClickListener
{

public void onClick(View v)
{
try
{
saveMyBitmap(icon);
Toast.makeText(Mo_Ren.this, "保存完毕", Toast.LENGTH_SHORT).show();
finish();
}
catch (IOException e)
{
e.printStackTrace();
}
}

}

/**
* 用于保存已经制作好的图片
*
* @param bmp
*/
public void saveMyBitmap(Bitmap bmp) throws IOException
{
File fileMuLu = new File(tupianPath);
if (!fileMuLu.exists())
{
// 创建多级目录
fileMuLu.mkdirs();
}
File file = new File(tupianPath + filename);
if (!file.exists())
{
// 创建文件
file.createNewFile();
}

FileOutputStream fos = null;
fos = new FileOutputStream(tupianPath + file);

bmp.compress(Bitmap.CompressFormat.PNG, 100, fos);
if (fos != null)
{
try
{
fos.flush();
fos.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}

}

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(1

想挽留 2017-08-04 1 楼

对于这一系列问题,我觉得是:

1.控件是否绑定了 OnClickListener 又是否在其他地方绑定设置成 null
2.在 onClick 方法第一行加入打印语句,确认是否执行了方法;
3.是否对控件设置了 不可点击 或者 不可用状态;
4.父 view 是否有截获当前点击 view 的事件;
5.是否有其他透明的 activity 或者其他控件覆盖在上面,又或者在某些情况下,dialog 没有正常关闭,导致覆盖起上,

如果还是未能找到原因,建议简化逻辑和代码,一步步排除,找到原因