安卓的onclick不工作 [英] Android: onclick not working
本文介绍了安卓的onclick不工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在做我的应用程序一个ImageAdapter,我想TextView的下面的图片上点击是隐藏的。但setInvisibility无法正常工作。萨尔瓦多的问题是没有任何工程与信息。是否与景观的问题...我需要帮助,请
XML
<的RelativeLayout的xmlns:机器人=http://schemas.android.com/apk/res/android
机器人:layout_width =match_parent
机器人:layout_height =match_parent>< imagenes.TouchImageView
机器人:ID =@ + ID / imgDisplay
机器人:layout_width =match_parent
机器人:layout_height =match_parent
机器人:scaleType =fitCenter/><的TextView
机器人:ID =@ + ID / textoInfoImagen
机器人:layout_alignParentBottom =真
机器人:layout_width =match_parent
机器人:layout_height =WRAP_CONTENT
机器人:重力=CENTER_HORIZONTAL
机器人:背景=@彩色/ grisTransparente
机器人:paddingTop =3DP
机器人:paddingBottom会=3DP
机器人:文字=
机器人:TEXTSIZE =13SP
机器人:文字颜色=@彩色/灰皮诺/>< / RelativeLayout的>
JAVA
公共类FullScreenImageAdapter扩展PagerAdapter实现OnClickListener {私人活动_activity;
私人LayoutInflater吹气;
上下文语境;的String [] listaImagenes;
串纪念碑;TouchImageView imgDisplay;
TextView的信息;布尔无形= FALSE;公共FullScreenImageAdapter(活动活动,上下文的背景下,字符串纪念碑)抛出IOException
this._activity =活动;
this.context =背景;
this.monumento =摩奴;
listaImagenes = context.getAssets()列表(this.monumento)。
}@覆盖
公众诠释的getCount(){
返回listaImagenes.length;
}@覆盖
公共布尔isViewFromObject(查看视图,Object对象){
返回查看==((RelativeLayout的)对象);
}@覆盖
公共对象instantiateItem(ViewGroup中的容器,INT位置){ 吹气=(LayoutInflater)_activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
最后查看viewLayout = inflater.inflate(R.layout.ampliar_imagen,集装箱,
假); imgDisplay =(TouchImageView)viewLayout.findViewById(R.id.imgDisplay);
imgDisplay.setMaxZoom(4); 位图位图= cargarImagen(纪念碑,位置);
imgDisplay.setImageBitmap(位图); 信息=(TextView中)viewLayout.findViewById(R.id.textoInfoImagen);
info.setText((位置+ 1)+德+ listaImagenes.length +
\\ n+ InfoImagenes.devolverInfoImagenes(纪念碑,位置)); imgDisplay.setOnClickListener(新View.OnClickListener(){
公共无效的onClick(视图v){ Toast.makeText(背景下,点击,Toast.LENGTH_SHORT).show();
如果(隐形==真){
无形= FALSE;
info.setVisibility(View.VISIBLE);
}其他{
无形= TRUE;
info.setVisibility(View.INVISIBLE);
}
}
}); ((ViewPager)容器).addView(viewLayout); 返回viewLayout;
}@覆盖
公共无效destroyItem(ViewGroup中的容器,INT位置,Object对象){
((ViewPager)容器).removeView((RelativeLayout的)对象);}公共位图cargarImagen(字符串纪念碑,INT位置){ 位图位图= NULL;
InputStream为; 尝试{
BitmapFactory.Options选项=新BitmapFactory.Options();
options.in preferredConfig = Bitmap.Config.ARGB_8888; 是= context.getAssets()开(摩奴+/+ listaImagenes [位置]);
位= BitmapFactory.de codeStream(是,空,期权); }赶上(IOException异常五){ } 返回位图;
}@覆盖
公共无效的onClick(视图v){
}}
解决方案
使用的ImageView
的(imgDisplay)键入的.java 类的ImageView
而不是 TouchImageView
I'm doing in my app a ImageAdapter and i want that click on the image below the textview is hidden. But setInvisibility not work. El problem is nothing works with info. Is there a problem with views ... I need help please
XML
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<imagenes.TouchImageView
android:id="@+id/imgDisplay"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitCenter" />
<TextView
android:id="@+id/textoInfoImagen"
android:layout_alignParentBottom="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:background="@color/grisTransparente"
android:paddingTop="3dp"
android:paddingBottom="3dp"
android:text=""
android:textSize="13sp"
android:textColor="@color/gris"/>
</RelativeLayout>
JAVA
public class FullScreenImageAdapter extends PagerAdapter implements OnClickListener {
private Activity _activity;
private LayoutInflater inflater;
Context context;
String[] listaImagenes;
String monumento;
TouchImageView imgDisplay;
TextView info;
boolean invisible = false;
public FullScreenImageAdapter(Activity activity, Context context, String monumento) throws IOException {
this._activity = activity;
this.context = context;
this.monumento = monumento;
listaImagenes = context.getAssets().list(this.monumento);
}
@Override
public int getCount() {
return listaImagenes.length;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == ((RelativeLayout) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
inflater = (LayoutInflater) _activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final View viewLayout = inflater.inflate(R.layout.ampliar_imagen, container,
false);
imgDisplay = (TouchImageView) viewLayout.findViewById(R.id.imgDisplay);
imgDisplay.setMaxZoom(4);
Bitmap bitmap = cargarImagen(monumento, position);
imgDisplay.setImageBitmap(bitmap);
info = (TextView) viewLayout.findViewById(R.id.textoInfoImagen);
info.setText((position + 1) + " de " + listaImagenes.length +
"\n" + InfoImagenes.devolverInfoImagenes(monumento, position));
imgDisplay.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Toast.makeText(context, "click", Toast.LENGTH_SHORT).show();
if(invisible == true) {
invisible = false;
info.setVisibility(View.VISIBLE);
} else {
invisible = true;
info.setVisibility(View.INVISIBLE);
}
}
});
((ViewPager) container).addView(viewLayout);
return viewLayout;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
((ViewPager) container).removeView((RelativeLayout) object);
}
public Bitmap cargarImagen(String monumento, int position) {
Bitmap bitmap = null;
InputStream is;
try {
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
is = context.getAssets().open(monumento + "/" + listaImagenes[position]);
bitmap = BitmapFactory.decodeStream(is, null, options);
} catch (IOException e) {
}
return bitmap;
}
@Override
public void onClick(View v) {
}
}
解决方案
Use ImageView
's (imgDisplay) type in .java class as ImageView
instead of TouchImageView
这篇关于安卓的onclick不工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文