2015-05-06 22:08:12 xzj662 阅读数 490

今天看别人用了第四种方法的也就是在布局文件中设置OnClick,以前也知道有这么一种实现办法就是一直没用过。所以闲下来总结一下实现点击事件的几种方法。 一、第一种使用匿名内部类实现,代码如下;
  1. import android.os.Bundle;
  2. import android.view.View;
  3. import android.view.View.OnClickListener;
  4. import android.widget.Button;
  5. import android.widget.Toast;
  6. import android.app.Activity;
  7. public class MainActivity extends Activity {
  8. private Button btn;
  9. @Override
  10. protected void onCreate(Bundle savedInstanceState) {
  11. super.onCreate(savedInstanceState);
  12. setContentView(R.layout.activity_main);
  13. btn = (Button)findViewById(R.id.btn);
  14. btn.setOnClickListener(new OnClickListener() {//实现点击事件
  15. @Override
  16. public void onClick(View v) {
  17. // TODO Auto-generated method stub
  18. Toast.makeText(MainActivity.this, "你点击了按钮", Toast.LENGTH_LONG).show();
  19. }
  20. });
  21. }
  22. }
二、第二种使用内部类实现,代码如下;
  1. import android.os.Bundle;
  2. import android.view.View;
  3. import android.view.View.OnClickListener;
  4. import android.widget.Button;
  5. import android.widget.Toast;
  6. import android.app.Activity;
  7. public class MainActivity extends Activity {
  8. private Button btn;
  9. @Override
  10. protected void onCreate(Bundle savedInstanceState) {
  11. super.onCreate(savedInstanceState);
  12. setContentView(R.layout.activity_main);
  13. btn = (Button)findViewById(R.id.btn);
  14. btn.setOnClickListener(new MyOnClickListerner());
  15. }
  16.  private class MyOnClickListerner implements OnClickListener{
  17. @Override
  18. public void onClick(View v) {
  19. // TODO Auto-generated method stub
  20. Toast.makeText(MainActivity.this, "你点击了按钮", Toast.LENGTH_LONG).show();
  21. }
  22. }
  23. }
三、第三种实现OnClickListener接口,代码如下:
  1. import android.os.Bundle;
  2. import android.view.View;
  3. import android.view.View.OnClickListener;
  4. import android.widget.Button;
  5. import android.widget.Toast;
  6. import android.app.Activity;
  7. public class MainActivity extends Activity implements OnClickListener {
  8. private Button btn;
  9. @Override
  10. protected void onCreate(Bundle savedInstanceState) {
  11. super.onCreate(savedInstanceState);
  12. setContentView(R.layout.activity_main);
  13. btn = (Button) findViewById(R.id.btn);
  14. btn.setOnClickListener(this);
  15. }
  16. @Override
  17. public void onClick(View v) {
  18. // TODO Auto-generated method stub
  19. Toast.makeText(MainActivity.this, "你点击了按钮", Toast.LENGTH_LONG).show();
  20. }
  21. }
四、第四种在布局文件中指定OnClick方法,打码如下: main_activity.xml文件
  1. xmlns:tools="http://schemas.android.com/tools"
  2. android:layout_width="match_parent"
  3. android:layout_height="match_parent"
  4. android:paddingBottom="@dimen/activity_vertical_margin"
  5. android:paddingLeft="@dimen/activity_horizontal_margin"
  6. android:paddingRight="@dimen/activity_horizontal_margin"
  7. android:paddingTop="@dimen/activity_vertical_margin"
  8. tools:context=".MainActivity" >
  9. <button< span="">
  10. android:id="@+id/btn"
  11. android:layout_width="wrap_content"
  12. android:layout_height="wrap_content"
  13. android:text="@string/anniu"
  14. android:onClick="BtnClick"
  15. />
MainActivity.java文件
  1. import android.os.Bundle;
  2. import android.view.View;
  3. import android.widget.Toast;
  4. import android.app.Activity;
  5. public class MainActivity extends Activity{
  6. @Override
  7. protected void onCreate(Bundle savedInstanceState) {
  8. super.onCreate(savedInstanceState);
  9. setContentView(R.layout.activity_main);
  10. }
  11. public void BtnClick(View v){
  12. Toast.makeText(MainActivity.this, "你点击了按钮", Toast.LENGTH_LONG).show();
  13. }
  14. }
以上四种方法都可以实现按钮的点击事件。视情况选择适合的实现方法。

2016-12-28 23:07:42 guozhaohui628 阅读数 9066

1. 如题

  在最近项目开发中,我今天是第二次碰到这种情况了,并且这次还浪费了我很久的时间找问题,我很不服。上一次是在一个布局中,如图

我对他设置点击事件后,点击一直没反应,找了很久原因,最后在xml布局中发现,如图所示的情况。
我当然想要的是对外面relativelayout进行点击事件的添加,但是由于我对他的子view也设置了clickable这个属性,使子布局拿到了焦点,所以点击就没用了。
  今天第二次碰到的情况更特殊,是一个listview,我对listview的适配器最外层的父布局添加了clickable这个属性,导致我点击listview的item没用,并且我debug时,断点设置在listview.setonitemclicklistener时,并没有点击item直接就进入debug了,说明确实是焦点出问题了,不然这种情况很怪。
2017-12-22 13:54:25 keke921231 阅读数 1643

               在android studio中查询所有没被用到的资源,也就是res中文件,图片,xml文件之内。

在android studio中点击工具栏Analyze按钮,选择 Run Inspection by name...按钮 ,输入 unused resources

按回车即可。可以用于删除无用的资源,减轻APK的大小。

          还有个办法可以查询到现有的APK哪些地方站内容,Android studio中点击Build->Analyze APK... 选择APK即可发现APK哪里最占资源了

             

2019-04-02 22:10:37 qq_36425800 阅读数 282

今天在使用RecyclerView的时候为item设置点击事件死活都没有用,但是为item中的控件设置点击事件又是没问题的。为了解决这个问题然后在网上查了半天,各种方法都试过了还是没用,最后检查item的布局发现了问题:

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="10dp"
        android:orientation="horizontal"
        android:gravity="center"
        android:clickable="true">

关键在于最后一行,在对item布局的clickable属性设置为true,将其删掉就好了。原因应该是item的外面的线性布局将点击事件拦截掉了,导致item的点击事件无效。

再次反省,,,写代码还是要细心点,不能一昧得复制之前其他地方的代码。

2015-08-04 21:48:25 zhangzhilai8 阅读数 420

1.Listview中用notifyDataSetChanged不会出现界面刷新的感觉;

2.Listview去掉分割线,android:divider="@null";

3.Listview的item中自定义Layout时,在item中设置margin没用的;(一般用padding)

4.禁止listview中item的点击事件?

重写Adapter的一个方法

@Override
public boolean isEnabled(int position) {
		return false;;
}
5.取消Listview的蒙边?

android:fadingEdge="none” 

6.listview跳转到某一行?
listview.setSelection(int position);


Android学习01

阅读数 229

没有更多推荐了,返回首页