1.EditText 中将光标移到文字末尾:
EditText mEdit = (EditText)this.findViewById(R.id.EditText01);
mEdit .setText("abcdefg");
Editable b = mEdit .getText();
mEdit .setSelection(b.length());
2.Android TextView文字横向自动滚动(***灯效果)
(1)重写TextView
public class AlwaysMarqueeTextView extends TextView {
public AlwaysMarqueeTextView(Context context) {
super(context);
}
public AlwaysMarqueeTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public AlwaysMarqueeTextView(Context context, AttributeSet attrs,int defStyle) {
super(context, attrs, defStyle);
}
@Override
public boolean isFocused() {
return true;
}
}
(2)在布局中
<com.kayang.views.AlwaysMarqueeTextView
android:id="@+id/txtHeadTitle"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_weight="9"
android:background="@android:color/transparent"
android:ellipsize="marquee"
android:focusable="true"
android:gravity="center"
android:focusableInTouchMode="true"
android:singleLine="true"
android:textColor="#ffffff"
android:textSize="20dp"
android:marqueeRepeatLimit="marquee_forever"
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这样的数据:
usersList.clear();
usersList.addAll(query(......));
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类作为活动管理器。
public class ActivityCollector { public static List<Activity> activities=new ArrayList<Activity>(); public static void addActivity(Activity activity) {
activities.add(activity);
} public static void removeActivity(Activity activity) {
activities.remove(activity);
} public static void finishAll() {
for (Activity activity: activities) {
if (!activity.isFinishing()) {
activity.finish();
}
}
} }
(2)添加和移除activity
public class BaseActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ActivityCollector.addActivity(this); //将当前正在创建的activity加入到ActivityCollector
} @Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
ActivityCollector.removeActivity(this); //马上要销毁的activity从ActivityCollector移除
}
}
(3) 销毁全部的activity
public class SignOutActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.signout);
Button button=(Button) findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
// TODO Auto-generated method stub
ActivityCollector.finishAll();
}
});
}
}
app中的所有的activity都继承BaseActivity。
10.控件不会随着键盘上移
在manifest的activity中,添加 android:windowSoftInputMode="adjustPan" 属性