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" 属性