• Android开发之实用小知识点汇总-2


    1.EditText 中将光标移到文字末尾:

    1 EditText mEdit = (EditText)this.findViewById(R.id.EditText01);
    2 mEdit .setText("abcdefg");
    3 Editable b = mEdit .getText();
    4 mEdit .setSelection(b.length());

    2.Android TextView文字横向自动滚动(***灯效果)

    (1)重写TextView

     1 public class AlwaysMarqueeTextView extends TextView {
     2     public AlwaysMarqueeTextView(Context context) {
     3         super(context);
     4     }
     5     public AlwaysMarqueeTextView(Context context, AttributeSet attrs) {
     6         super(context, attrs);
     7     }
     8     public AlwaysMarqueeTextView(Context context, AttributeSet attrs,int defStyle) {
     9         super(context, attrs, defStyle);
    10     }
    11     @Override
    12     public boolean isFocused() {
    13         return true;
    14     }
    15 }

    (2)在布局中

     1 <com.kayang.views.AlwaysMarqueeTextView
     2         android:id="@+id/txtHeadTitle"
     3         android:layout_width="wrap_content"
     4         android:layout_height="fill_parent"
     5         android:layout_weight="9"
     6         android:background="@android:color/transparent"
     7         android:ellipsize="marquee"
     8         android:focusable="true"
     9         android:gravity="center"
    10         android:focusableInTouchMode="true"
    11         android:singleLine="true"
    12         android:textColor="#ffffff"
    13         android:textSize="20dp"
    14         android:marqueeRepeatLimit="marquee_forever"
    15         android:scrollHorizontally="true" />

    只需以上的两步,你的文字就会跑起来啦!

    3.布局 android:layout_xxx="0.0dip"和android:layout_weight 的搭配使用:

    要想使子控件成比例,

    在竖直方向:用android:layout_height="0.0dip"和android:layout_weight;

    在水平方向:用android:layout_width="0.0dip"和android:layout_weight;

    此时android:layout_weight越大在相应方向占的比例就越大。

    4.adapter.notifyDataSetChanged更新数据时没刷新页面,则将你请求的新数据按照以下的三句话来处理即可,注意这种情况主要是List这样的数据:

    1 usersList.clear(); 
    2 usersList.addAll(query(......));
    3 adapter.notifyDataSetChanged();

    5.ListView的item中包含有GridView或者ListView时,会导致Item的点击事件失效?

    解决方案:在Adapter中的布局的第一层加 android:descendantFocusability="blocksDescendants",如此就可以解决了焦点的问题。

    6.GridView设置Item的间距

    水平间距:android:horizontalSpacing="5dp"
    垂直间距:android:verticalSpacing="2dp"

    7.EditText中设置输入内容与EditText的头部的间距:

    android:paddingLeft="10dp" ;

    8.如何生成二维码让用户扫描下载自己的APK?

    解决:只需要在网上下载一个二维码生成器,将服务器下载apk 的地址输入后生成一个二维码的图标,用户只需扫描该二维码即可下载。

    9.随时随地退出程序:

    (1)新建一个ActivityCollector类作为活动管理器。

     1 public class ActivityCollector {
     2     
     3     public static  List<Activity> activities=new ArrayList<Activity>();
     4     
     5     public static void addActivity(Activity activity) {
     6         activities.add(activity);
     7     }
     8     
     9     public static void removeActivity(Activity activity) {
    10         activities.remove(activity);
    11     }
    12     
    13     public static void finishAll() {
    14         for (Activity activity: activities) {
    15             if (!activity.isFinishing()) {
    16                 activity.finish();
    17             }
    18         }
    19     }
    20 
    21 }

    (2)添加和移除activity

     1 public class BaseActivity extends Activity {
     2 
     3     @Override
     4     protected void onCreate(Bundle savedInstanceState) {
     5         // TODO Auto-generated method stub
     6         super.onCreate(savedInstanceState);
     7         setContentView(R.layout.activity_main);
     8         ActivityCollector.addActivity(this);     //将当前正在创建的activity加入到ActivityCollector
     9     }
    10     
    11     @Override
    12     protected void onDestroy() {
    13         // TODO Auto-generated method stub
    14         super.onDestroy();
    15         ActivityCollector.removeActivity(this);   //马上要销毁的activity从ActivityCollector移除
    16     }
    17 }

    (3) 销毁全部的activity

     1 public class SignOutActivity extends Activity {
     2     
     3     @Override
     4     protected void onCreate(Bundle savedInstanceState) {
     5         // TODO Auto-generated method stub
     6         super.onCreate(savedInstanceState);
     7         setContentView(R.layout.signout);
     8         Button button=(Button) findViewById(R.id.button);
     9         button.setOnClickListener(new OnClickListener() {
    10             
    11             @Override
    12             public void onClick(View v) {
    13                 // TODO Auto-generated method stub
    14                 ActivityCollector.finishAll();
    15             }
    16         });
    17     }
    18 }

     app中的所有的activity都继承BaseActivity。

    10.控件不会随着键盘上移

    在manifest的activity中,添加 android:windowSoftInputMode="adjustPan" 属性

  • 相关阅读:
    TCP 连接状态
    可视化垃圾回收算法
    flume-ng+Kafka+Storm+HDFS 实时系统搭建
    WeX5 IDE 手机移动开发+JAVA +大数据
    云计算高级运维工程师
    CentOS 5.8 上安装 systemtap-2.6
    SYSTEMTAP -ORACLE
    Apple激活日期查询
    Div 浮动到另一个div之上
    Python模块常用的几种安装方式
  • 原文地址:https://www.cnblogs.com/liyiran/p/4629956.html
Copyright © 2020-2023  润新知