配置环境变量:
SDK_HOME D:\Android\adt-x86_64\adt-bundle-windows-x86_64-20131030\sdk
path %SDK_HOME%\tools;%SDK_HOME%\platform-tools;
测试:
cmd--adb shell
*********************************************************************************************************
public void test(View view){
Toast.makeText(MainActivity.this, "click me", Toast.LENGTH_LONG).show();
}
*********************************************************************************************************
<!-- android:text="Button" -->
android:text="@string/msg"
TextView textView = (TextView) findViewById(R.id.textView1);
//textView.setText("ccc");
textView.setText(R.string.msg);
*********************************************************************************************************
DDMS
Log.d("init","aaaa");
Log.i("execute","bbbbb");
*********************************************************************************************************
右键-->Android Tools-->Export Signed Application Package...
反编译 dex2jar http://laichao.googlecode.com/files/dex2jar-0.0.7-SNAPSHOT.zip
JD-GUI http://laichao.googlecode.com/files/jdgui.zip
*********************************************************************************************************
常见的事件
onClickListener 单击事件
onLongClickListener 长按事件
onTouchListener 触摸事件/滑动事件
onKeyListener 键盘事件
setOnFocusChangelistener 焦点事件
*********************************************************************************************************
单击事件:
Button button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Toast.makeText(MainActivity.this, "button is clicked", Toast.LENGTH_SHORT).show();
}
});
--------------------------------------------------------------------------------------------------------
//android:onClick="test"
public void test(View view){
view.setX(view.getX()+10);
}
--------------------------------------------------------------------------------------------------------
// button.setOnClickListener(myListener);
private View.OnClickListener myListener = new OnClickListener() {
@Override
public void onClick(View arg0) {
Toast.makeText(MainActivity.this, "button is clicked", Toast.LENGTH_SHORT).show();
}
};
*********************************************************************************************************
长按事件:
button.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View arg0) {
System.out.println("clicked");
return false;
}
});
*********************************************************************************************************
触摸事件/滑动事件:
//元事件 : action_down,action_move,action_up
button.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// event 记录了事件发生现场状况
int actionType = event.getAction();
if(actionType==MotionEvent.ACTION_DOWN){
System.out.println("touch 按下。。。。");
}else if(actionType==MotionEvent.ACTION_MOVE){
System.out.println("touch 移动。。。");
}else if(actionType==MotionEvent.ACTION_UP){
System.out.println("touch 松开。。。");
}
return true;
}
});
*********************************************************************************************************
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
android:id="@+id/layout01"
>
ViewGroup viewGroup = (ViewGroup) findViewById(R.id.layout01);
// viewGroup == div, view == button,text
*********************************************************************************************************
焦点事件:
button.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View arg0, boolean arg1) {
System.out.println("focus...");
}
});
*********************************************************************************************************
键盘事件:
button.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
System.out.println("keyCode"+keyCode);
if(29==keyCode){
button.setX(button.getX()-20);
}else if(32==keyCode){
button.setX(button.getX()+20);
}else if(51==keyCode){
button.setY(button.getY()+20);
}else if(47==keyCode){
button.setY(button.getY()+20);
}
return false;
}
});
*********************************************************************************************************
第10讲 UI线程阻塞
//1
Button button1 = (Button) findViewById(R.id.button1);
TranslateAnimation animation = new TranslateAnimation(0, 150,0,0);
animation.setRepeatCount(30);
animation.setDuration(2000);
button1.setAnimation(animation);
Button button2 = (Button) findViewById(R.id.button2);
button2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
--------------------------------------------------------------------------------------------------------
//2 同一个线程
button2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}).start();
}
});
--------------------------------------------------------------------------------------------------------
//3 报错,只有创建view的线程才能对其进行操作
button2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(final View v) {
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int sum = 10;//假定进行耗时操作计算值
TextView view = (TextView) v;
view.setText(""+10);
}
}).start();
}
});
--------------------------------------------------------------------------------------------------------
//4 解决方法--可读性差,维护性差
button2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(final View v) {
System.out.println("----" + Thread.currentThread().getId());
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int sum = 10;//假定进行耗时操作计算值
v.post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("post started.." + Thread.currentThread().getId());
TextView view = (TextView) v;
view.setText(""+10);
}
});
}
}).start();
}
});
--------------------------------------------------------------------------------------------------------
//4 解决方法2
button2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(final View v) {
new DownloadImageTask().execute();
}
});
--------------------------------------------------------------------------------------------------------
private class DownloadImageTask extends AsyncTask<String, Void, Integer>{
@Override
protected Integer doInBackground(String... arg0) {
try {
Thread.sleep(50000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int sum = 10;
return sum;
}
protected void onPostExecute(Integer sum){
button2.setText(""+sum);
}
}
*********************************************************************************************************
第12讲--toast
Toast:
*********************************************************************************************************
*********************************************************************************************************
Toast. makeText(this, "hello toast...", 1).show();
Toast.makeText (this .getApplicationContext(), "hello toast...", 1).show();
Toast toast = Toast.makeText(this.getApplicationContext(), "hello toast...", 1);
toast.setGravity( Gravity.CENTER, 0, 0);
toast.show();
第13讲--顶部通知栏--Notification
public void test(){
NotificationManager manager = (NotificationManager ) this.getSystemService(Context.NOTIFICATION_SERVICE);
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(this)
.setSmallIcon(android.R.drawable.sym_def_app_icon )
.setContentTitle( "My notification")
.setContentText( "hello world")
.setTicker( "来消息了");
Notification notification = mBuilder.build();
manager.notify(1,notification);
//manager.notify(id,notifacation); //发送一个通知
//manager.cancel(id);
}
第14讲
int color = this.getResources().getColor(R.color.bg_color);
Toast. makeText(this,""+color,1).show();
this.getWindow().setBackgroundDrawable(R. color.bg_color);
String str = this.getString(R.string. welcome);
button.setText(R.string.welcome);
*********************************************************************************************************
第15讲--xml
/test_xml/res/xml/users.xml
<?xml version= "1.0" encoding ="utf-8"?>
<resources>
<user username ="xiaoggao" phone="1231231"></ user>
<user username ="laogao" phone="456456"></ user>
</resources>
MainActivity.java
public void test(View view) throws XmlPullParserException, IOException{
String text = "";
XmlResourceParser xrp = this.getResources().getXml(R.xml.users);
//sax
while(xrp.getEventType()!=XmlResourceParser. END_DOCUMENT){
if(xrp.getEventType()==XmlResourceParser. START_TAG)
{
String tagname = xrp.getName();
if(tagname.equals( "user")){
String uname = xrp.getAttributeValue(0);
String phone = xrp.getAttributeValue(1);
text += "姓名:" + uname +";电话:" +phone +";\n" ;
}
}
xrp.next();
}
TextView textView = (TextView) findViewById(R.id.textView1 );
textView.setText(text);
}
--------------------------------------------------------------------------------------------------------
15. --图片
android:background= "@drawable/a1" >
public void test1(View view){
Drawable drawable = this.getResources().getDrawable(R.drawable.a1);
this.getWindow().setBackgroundDrawable(drawable);
}
public void test2(View view){
Drawable drawable = this.getResources().getDrawable(R.drawable.a2);
this.getWindow().setBackgroundDrawable(drawable);
}
*********************************************************************************************************
16. -- textView
<!-- /test_textView/res/layout/activity_main.xml -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width= "match_parent"
android:layout_height= "match_parent"
android:paddingBottom= "@dimen/activity_vertical_margin"
android:paddingLeft= "@dimen/activity_horizontal_margin"
android:paddingRight= "@dimen/activity_horizontal_margin"
android:paddingTop= "@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<!--
layout_width
layout_height
width
height
lines
ems 根据文字内容设置宽度、高度
//相对设置
wrap_content 相对于内容 其他对于宽度和高度的设置将产生影响
fill_parent 相对于父容器 其他对于宽度和高度的设置将无效
singleLine
-->
<TextView
android:id= "@+id/textView1"
android:layout_width= "wrap_content"
android:layout_height="wrap_content"
android:ems= "4"
android:background= "#ff0000"
android:layout_alignRight="@+id/textView2"
android:layout_below= "@+id/textView2"
android:layout_marginTop="36dp"
android:text="TextView"
android:singleLine= "true"
android:lines= "4"
android:textColor= "#00ff00"
android:textSize= "40sp"
android:gravity= "center_horizontal"
/>
<!-- 文字自动滚动 -->
<TextView
android:id= "@+id/textView2"
android:layout_width= "100dp"
android:layout_height="wrap_content"
android:text="1234567890123456789"
android:background= "@android:color/holo_blue_bright"
android:singleLine= "true"
android:ellipsize= "marquee"
android:marqueeRepeatLimit="marquee_forever"
android:focusable= "true"
android:focusableInTouchMode="true"
/>
</RelativeLayout>
*********************************************************************************************************
17.---ImageView
<ImageView
android:id= "@+id/imageView1"
android:layout_width= "wrap_content"
android:layout_height="wrap_content"
android:src= "@drawable/a1" />
public class MainActivity extends Activity {
private int[] a = new int[]{
R.drawable.a1,
R.drawable.a2,
R.drawable.a3,
R.drawable.a4
};
private int count = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageView imageView = (ImageView) findViewById(R.id.imageView1);
//如何获取到屏幕的宽度
final int width=this.getWindowManager().getDefaultDisplay().getWidth();
/*imageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
ImageView view = (ImageView)v;
if(count==4){
count=0;
}
view.setImageResource(a[count++]);
}
});*/
imageView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
//如何在图片点击的过程中,获得点击X轴坐标
int x = (int)event.getX();
if(x>=(width/2)){
//右侧
ImageView view = (ImageView)v;
if(count==4){
count=0;
}
view.setImageResource(a[count++]);
}
else{
//左侧
ImageView view = (ImageView)v;
if(count==-1){
count=3;
}
view.setImageResource(a[count--]);
}
return false;
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
*********************************************************************************************************
018--EditText
<EditText
android:id= "@+id/editText1"
android:layout_width= "wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="57dp"
android:ems= "10"
android:maxLength= "10"
android:singleLine= "true"
android:hint= "请输入数字!"
android:numeric="integer"
>
<!-- <requestFocus/> -->
</EditText >
<EditText
android:id= "@+id/editText2"
android:layout_width= "wrap_content"
android:layout_height="wrap_content"
android:ems= "10"
android:maxLength= "10"
android:singleLine= "true"
android:layout_below= "@id/editText1"
android:hint="请输入汉字"
android:textColorHint="#ff0000"
android:digits= "1234abcd"
>
</EditText >
<EditText
android:id= "@+id/editText3"
android:layout_width= "wrap_content"
android:layout_height="wrap_content"
android:ems= "10"
android:maxLength= "10"
android:singleLine= "true"
android:layout_below= "@id/editText2"
>
</EditText >
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout. activity_main);
EditText editText3 = (EditText) findViewById(R.id.editText3 );
editText3.addTextChangedListener( new TextWatcher() {
@Override
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
String string = s.toString();
if(string.indexOf( "4")!=-1){
s.clear();
Toast. makeText(getApplicationContext(),"不能输入4",1).s how();
}
}
});
EditText editText1 = (EditText) findViewById(R.id.editText1 );
editText1.setFilters( new InputFilter[]{
new InputFilter.LengthFilter(5),
new InputFilter.AllCaps(),
new InputFilter(){
@Override
public CharSequence filter(CharSequence source, int start,
int end, Spanned dest, int dstart, int dend) {
if( "1".equals(source.toString())){
return "一";
} else if("2" .equals(source.toString())){
return "二";
} else{
return null;
}
}}
});
}
*********************************************************************************************************
019--
020--
string.xml
<string-array name= "spinner_data">
<item >山西 </item>
<item >陕西 </item>
<item >江西 </item>
</string-array >
activity_main.xml
<Spinner
android:id= "@+id/spinner1"
android:layout_width= "wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="38dp"
android:layout_marginTop="58dp"
android:entries= "@array/spinner_data"
android:spinnerMode= "dialog"
/>
MainActivity.java
private String[] ss = new String[]{
"北京",
"上海",
"深圳"
};
private List<String> list = new ArrayList<String>(){
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout. activity_main);
list.add( "java");
list.add( "c++");
list.add( "php");
BaseAdapter adapter = new MyAdapter();
Spinner spinner = (Spinner) findViewById(R.id.spinner1 );
spinner.setAdapter(adapter);
}
private class MyAdapter extends BaseAdapter{
@Override
public int getCount() {
// TODO Auto-generated method stub
return ss .length;
}
@Override
public Object getItem( int arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId( int arg0) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView( int position, View arg1, ViewGroup arg2) {
// TODO Auto-generated method stub
TextView textView = new TextView(MainActivity.this );
textView.setText( ss[position]);
return textView;
}
}
//-----------------------------------------
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout. activity_main);
ArrayAdapter<String> adapter =
new ArrayAdapter<String>( this, android.R.layout.simple_spinner_item ,ss );
Spinner spinner = (Spinner) findViewById(R.id.spinner1 );
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int position, long arg3) {
//position 被选中的item ,相对应的数组索引
Toast. makeText(MainActivity.this, ss[position], 0).show();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
}
*********************************************************************************************************
021--布局xml
022--布局
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
LinearLayout linearLayout = new LinearLayout( this);
linearLayout.setOrientation(LinearLayout. VERTICAL);
LinearLayout.LayoutParams params = new
LayoutParams(LayoutParams. MATCH_PARENT,LayoutParams. MATCH_PARENT);
linearLayout.setLayoutParams(params);
//所有的layout类都是ViewGroup的类
//linearLayout.addView(child);
//linearLayout.removeView(view);
TextView textView = new TextView( this);
textView.setText( "hello world");
textView.setTextSize(30);
textView.setOnClickListener( new OnClickListener() {
@Override
public void onClick(View v) {
ViewGroup parent = (ViewGroup)v.getParent();
TextView textView = new TextView(MainActivity.this );
textView.setText( "我是动态生成的" );
textView.setTextSize(25);
textView.setOnClickListener( new OnClickListener() {
@Override
public void onClick(View v) {
ViewGroup parent = (ViewGroup) v.getParent();
parent.removeView(v);
}
});
parent.addView(textView);
}
});
linearLayout.addView(textView);
this.setContentView(linearLayout);
}
---------------------------------------------------------------
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
LinearLayout linearLayout = new LinearLayout( this);
linearLayout.setOrientation(LinearLayout. VERTICAL);
LinearLayout.LayoutParams params = new
LayoutParams(LayoutParams. MATCH_PARENT,LayoutParams. MATCH_PARENT);
linearLayout.setLayoutParams(params);
LayoutInflater inflater = getLayoutInflater();
View view1 = inflater.inflate(R.layout. include01, null);
View view2 = inflater.inflate(R.layout. include02, null);
linearLayout.addView(view1);
linearLayout.addView(view2);
this.setContentView(linearLayout);
}
*********************************************************************************************************
023--相对位置布局
// 相对位置布局
android:layout_below= ""
android:layout_above= ""
android:layout_toLeftOf=""
android:layout_toRightOf=""
android:layout_marginLeft=""
android:layout_marginBottom=""
android:layout_marginTop=""
// 控件与控件之间对齐的方式
android:layout_alignBaseline=""
android:layout_alignBottom=""
android:layout_alignLeft=""
// 控件与父控件之间的对齐方式
android:layoutParentTop=""
android:layoutParentLeft=""
// 设置控件的方向
android:layout_centerHorizontal=""
android:layout_centerVertical=""
android:layout_centerInParent=""
*********************************************************************************************************
024--tableLayout
025--AlertDialog
public void test01(View view){
//如何创建一个AlertDialog
//1.AlertDialog.Builder
//在create方法执行之前,应该对对话框的一些参数进行详细的设置
//2.builder.create() 可以返回一个AlertDialog对象
//dialog.show()
AlertDialog.Builder builder = new Builder( this);
builder.setTitle( "提示信息");
builder.setMessage( "我都第一个对话框" );
builder. setPositiveButton("非常满意", new OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
Toast. makeText(MainActivity.this, "满意", 0).show();
}
});
builder. setNegativeButton("不满意", new OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
Toast. makeText(MainActivity.this, "不满意", 0).show();
}
});
builder. setNegativeButton("一般", new OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
Toast. makeText(MainActivity.this, "一般", 0).show();
}
});
AlertDialog alertDialog = builder.create();
alertDialog.show();
}
-------------------------------------------------------
private String[] ss = new String[]{
"北京",
"上海",
"深圳"
};
public void test02 (View view){
//如何创建一个AlertDialog
//1.AlertDialog.Builder
//在create方法执行之前,应该对对话框的一些参数进行详细的设置
//2.builder.create() 可以返回一个AlertDialog对象
//dialog.show()
AlertDialog.Builder builder = new Builder( this);
builder.setTitle( "提示信息");
builder. setItems(ss, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast. makeText(MainActivity.this, ss[which], 0).show();
}
});
AlertDialog alertDialog = builder.create();
alertDialog.show();
}
-------------------------------------------------------------------------------------------------------------
private String[] ss = new String[]{
"北京",
"上海",
"深圳"
};
public void test03(View view){
//如何创建一个AlertDialog
//1.AlertDialog.Builder
//在create方法执行之前,应该对对话框的一些参数进行详细的设置
//2.builder.create() 可以返回一个AlertDialog对象
//dialog.show()
AlertDialog.Builder builder = new Builder( this);
builder.setTitle( "提示信息");
builder. setSingleChoiceItems(ss, 0, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast. makeText(MainActivity. this, ss[ which], 0).show();
}
});
AlertDialog alertDialog = builder.create();
alertDialog.show();
}
----------------------------------------------------------------
private String[] ss = new String[]{
"北京",
"上海",
"深圳"
};
public void test04(View view){
//如何创建一个AlertDialog
//1.AlertDialog.Builder
//在create方法执行之前,应该对对话框的一些参数进行详细的设置
//2.builder.create() 可以返回一个AlertDialog对象
//dialog.show()
AlertDialog.Builder builder = new Builder( this);
builder.setTitle( "提示信息");
builder. setMultiChoiceItems(ss, new boolean[]{true ,false,true}, new OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog , int which, boolean isChecked) {
Toast. makeText(MainActivity. this, ss[ which], 0).show();
}
});
AlertDialog alertDialog = builder.create();
alertDialog.show();
}
*********************************************************************************************************
026--alertDialog 自定义
public void test05(View view){
AlertDialog.Builder builder = new Builder( this);
builder.setTitle( "登陆窗口");
view login = this.getLayoutInflater().inflate(R.layout.login, null);//login.xml
builder.setView( login);
AlertDialog alertDialog = builder.create();
alertDialog.show();
}
*********************************************************************************************************
027--ScrollView
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout. activity_main);
final LinearLayout layout01 = (LinearLayout)findViewById(R.id.layout01 );
for(; count<30; count++){
TextView textView = new TextView( this);
textView.setText( "textView"+ count);
textView.setTextSize(30);
layout01.addView(textView);
}
//如果知道scrollView滚动到底部??
ScrollView scrollView = (ScrollView) findViewById(R.id.scrollView1 );
scrollView.setOnTouchListener( new OnTouchListener(){
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction()==MotionEvent. ACTION_MOVE){
int scrollY = v.getScrollY();//scrollView以及向上滚动的高度
int height = v.getHeight();//scrollView显示高度
ScrollView view = (ScrollView) v;
int linearHeight = view.getChildAt(0).getMeasuredHeight();
System. out.println(scrollY+ ":"+height+ ":"+linearHeight);
if(scrollY+height == linearHeight){
Toast. makeText(MainActivity.this, "到达底部", 0).show();
int max = count+30;
for(; count<30; count++){
TextView textView = new TextView(MainActivity.this );
textView.setText( "textView"+ count);
textView.setTextSize(30);
layout01.addView(textView);
}
}
}
return false;
}
});
}
*********************************************************************************************************
028--
private String[] ss = new String[]{
"北京",
"上海",
"深圳",
"太原",
"南昌",
"北京",
"上海",
"深圳",
"太原",
"南昌",
"北京",
"上海",
"深圳",
"太原",
"南昌"
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout. activity_main);
final ListView listView = (ListView) findViewById(R.id.listView1 );
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this , android.R.layout.simple_list_item_1 ,ss );
ViewGroup group = getLayoutInflater().inflate(R.layout.footer, null);
Button button = group.findViewById(R.id.button1);
final EditText editText = group.findViewById(R.id.editText1);
button.setOnClickListener( new OnClickListener() {
@Override
public void onClick(View arg0) {
String indexString = editText.getText().toString();
listView.setSelection(Integer. valueOf(indexString));
}
});
//listView.addHeaderView(v);
listView.addFooterView( view);
listView.setAdapter(adapter);
}
*********************************************************************************************************
029--BaseAdapter
private String[] ss = new String[]{
"北京1",
"北京2",
"北京3",
"北京4",
"北京5"
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout. activity_main);
ListView listView = (ListView) findViewById(R.id.listView1 );
//BaseAdapter
MyAdapter adapter = new MyAdapter( this, ss);
listView.setAdapter(adapter);
/*
* for( int index=0;i<adapter.getCount();i++){
*
* View view = adapter.getView(i);
* listView.addView(view);
* }
*
*
*
*/
}
/********************************************************/
package com.example.test_listview03;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
public class MyAdapter extends BaseAdapter {
private Context context;
private String[] ss;
public MyAdapter(Context context,String[] ss){
super();
this. context = context;
this. ss = ss;
}
// getCount方法获取数据的个数
@Override
public int getCount () {
// TODO Auto-generated method stub
return ss. length;
}
@Override
public Object getItem (int arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId (int arg0) {
// TODO Auto-generated method stub
return 0;
}
//getView 需要构建一个View对象,来展示数据源中的信息
@Override
public View getView (int position, View converView, ViewGroup parent) {
// TODO Auto-generated method stub
String str = ss[position];
TextView textView = new TextView( context);
textView.setText(str);
return textView;
}
}
------------------------------------------------------
//BaseAdapter
//MyAdapter adapter = new MyAdapter(this,ss);
for( int i=0;i<10;i++){
User user = new User( "gao"+1, "12313",33);
list.add(user);
}
listView.setAdapter( new MyAdapter( this, list));
/********************************************************************/
private List<User> list ;
public MyAdapter(Context context,List<User> list){
super();
this. context = context;
this. list = list;
}
// getCount方法获取数据的个数
@Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}
public View getView(int position, View converView, ViewGroup parent) {
// TODO Auto-generated method stub
User user = list.get(position);
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
ViewGroup group = (ViewGroup) inflater.inflate(R.layout.user_item , null);
TextView textView1 = (TextView) group.findViewById(R.id.textView1 );
textView1.setText(user.getName());
TextView textView2 = (TextView) group.findViewById(R.id.textView2 );
textView1.setText(user.getPhone());
TextView textView3 = (TextView) group.findViewById(R.id.textView3 );
textView1.setText(user.getAge());
return group;
}
/*************************************************************************/
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout. activity_main);
ListView listView = (ListView) findViewById(R.id.listView1 );
/*
* data参数:要求输入一个固定的数据集合。List<Map<String,Object>>
* resource参数,一个layout布局文件的索引
*
*/
List<Map<String,String>> data = new ArrayList<Map<String,String>>();
for( int i=0;i<10;i++){
Map<String,String> map = new HashMap<String,String>();
map.put( "name", "gao"+i);
map.put( "phone", "1232131");
map.put( "age", "123");
data.add(map);
}
SimpleAdapter adapter = new SimpleAdapter(
this,
data,
R.layout. user_item,
new String[]{ "name", "phone", "age"},
new int[]{R.id.textView1 ,R.id.textView2,R.id.textView3});
}
*********************************************************************************************************
030--GridView
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout. activity_main);
GridView gridView = (GridView) findViewById(R.id.gridView1 );
int [] images = new int[]{
R.drawable. a1,
R.drawable. a2,
R.drawable. a3,
R.drawable. a4,
R.drawable. a5
};
String[] bookNames = new String[]{
"java",
"c++",
"C#",
"c++",
"C#"
};
gridView.setAdapter( new MyAdapter(images, this));
}
private class MyAdapter extends BaseAdapter{
private int[] images;
private Context context;
private String[] ss;
public MyAdapter( int[] images,Context context){
super();
this. images = images;
this. context = context;
this.ss = ss ;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return images. length;
}
@Override
public Object getItem( int arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId( int arg0) {
// TODO Auto-generated method stub
return 0;
}
/*@Override
public View getView( int position, View converView, ViewGroup parent) {
int resId = images[position];
ImageView imageView = new ImageView(context);
imageView.setImageResource(resId);
return imageView;
}*/
@Override
public View getView( int position, View converView, ViewGroup parent) {
int resId = images[position];
String bookName = ss[position];
ViewGroup group = getLayoutInflater().inflate(R.layout.book_item, null);
ImageView imageView = (ImageView)group.findViewById(R.id.iamgeView1);
imageView.setImageResource(resId);
TextView textView = (TextView)group.findViewById(R.id.textView1);
textView.setText( bookName);
return group;
}
}
*********************************************************************************************************
031--Gallery
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width= "fill_parent"
android:layout_height= "fill_parent"
android:orientation= "vertical" >
<ImageView
android:id= "@+id/imageView1"
android:layout_width= "match_parent"
android:layout_height="wrap_content"
android:layout_weight="3"
android:src= "@drawable/ic_launcher" />
<Gallery
android:id= "@+id/gallery1"
android:layout_width= "match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
/>
</LinearLayout>
/***************************************************
private int[] images = new int[]{
R.drawable. t1,
R.drawable. t2,
R.drawable. t3,
R.drawable. t4,
R.drawable. t5
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout. activity_main);
Gallery gallery = (Gallery) findViewById(R.id.gallery1 );
final ImageView imageView = (ImageView) findViewById(R.id.imageView1 );
MyAdapter adapter = new MyAdapter( images, this);
gallery.setAdapter(adapter);
gallery.setOnItemClickListener( new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long arg3) {
imageView.setImageResource( images[position]);
}
});
}
private class MyAdapter extends BaseAdapter{
private int[] images;
private Context context;
public MyAdapter( int[] images,Context context){
super();
this. images = images;
this. context = context;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return images. length;
}
@Override
public Object getItem( int arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId( int arg0) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView( int position, View converView, ViewGroup parent) {
ImageView imageView = new ImageView( context);
imageView.setLayoutParams( new Gallery.LayoutParams(120,120) );
imageView.setImageResource( images[position]);
return imageView;
}
}
*********************************************************************************************************
032--DatePicker TimePicker
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout. activity_main);
Calendar calendar = Calendar. getInstance();
DatePicker datePicker = (DatePicker) findViewById(R.id.datePicker1 );
datePicker.init(calendar.get(Calendar. YEAR), calendar.get(calendar.MONTH ), calendar.get(calendar.DAY_OF_MONTH ),
new OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
Toast. makeText(MainActivity.this, "您选择的日期是:"+year+":" +(monthOfYear+1)+":" +dayOfMonth, 0).show();
}
});
TimePicker picker = (TimePicker) findViewById(R.id.timePicker1 );
picker.setIs24HourView( true);
picker.setOnTimeChangedListener( new OnTimeChangedListener() {
@Override
public void onTimeChanged(TimePicker arg0, int hourOfDay, int minute) {
Toast. makeText(MainActivity.this, "您选择的日期是:"+hourOfDay+":" +minute, 0).show();
}
});
}
、//------------------------------------------------------------------------------
public void showDate(View view){
Calendar calendar = Calendar. getInstance();
new DatePickerDialog( this, new OnDateSetListener() {
@Override
public void onDateSet(DatePicker arg0, int arg1, int arg2, int arg3) {
// TODO Auto-generated method stub
}
}, calendar.get(Calendar. YEAR), calendar.get(Calendar.MONTH ), calendar.get(Calendar.DAY_OF_MONTH )).show();
}
public void showTime(View view){
new TimePickerDialog( this, new OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker arg0, int hourOfDay, int minute) {
Toast. makeText(MainActivity.this, "您选择的时间为:"+hourOfDay+":" +minute, 0).show();
}
}, 12, 12, true).show();
}
*********************************************************************************************************
033--
Widget.ProgressBar.Horizontal
Widget.ProgressBar.Small
Widget.ProgressBar.Large
Widget.ProgressBar.Inverse
Widget.ProgressBar.Small.Inverse
Widget.progressBar.Large.Inverse
<ProgressBar
android:id= "@+id/progressBar1"
android:layout_width= "match_parent"
android:layout_height="wrap_content"
style= "@android:style/Widget.ProgressBar.Horizontal"
android:max= "100"
android:progress= "29"
/>
progressBar .incrementProgressBy(-10);
public void test(final View view){
new Thread( new Runnable() {
@Override
public void run() {
try {
Thread. sleep(6000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//大多数情况下,需要对UI线程中的UI组件进行修改
view.post( new Runnable() {
@Override
public void run() {
ViewGroup group = (ViewGroup) progressBar.getParent();
group.removeView( progressBar);
}
});
}
}).start();
}
----------------------------------------------------------------------------------
new Thread(new Runnable(){
@Override
public void run() {
try {
Thread. sleep(6000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
handler.post( new Runnable() {
@Override
public void run() {
ViewGroup group = (ViewGroup) progressBar.getParent();
group.removeView( progressBar);
TextView textView = new TextView(MainActivity.this );
textView.setText( "下载成功");
group.addView(textView);
}
});
}});
*********************************************************************************************************
034--
public void test1(View view){
final ProgressDialog dialog = new ProgressDialog(this);
dialog.setTitle( "标题信息");
dialog.setMessage( "正在下载");
dialog.show();
new Thread( new Runnable() {
@Override
public void run() {
try {
Thread. sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Message msg = new Message();
msg. obj = dialog;
handler.sendMessage(msg);
}
}).start();
}
-------------------------------------------------------------------------------------
private Handler handler = new Handler( new Callback() {
@Override
public boolean handleMessage(Message msg) {
ProgressDialog dialog = msg. obj;
dialog.cancel();
textView.setText( "下载成功");
return false;
}
} );
*********************************************************************************************************
035--Activity
public void test(View view){
EditText editText = (EditText) findViewById(R.id.editText1 );
String uname = editText.getText().toString();
Intent intent = new Intent();
intent.setClass( this, SecondActivity. class);
intent.putExtra( "uname", uname);
this.startActivity(intent);
}
Intent intent = this.getIntent();
String uname = intent.getStringExtra( "uname");
TextView textView = (TextView) findViewById(R.id.textView2 );
textView.setText(uname);
------------------------------------------------------------------------------
this .setContentView(R.layout.myactivity);
*********************************************************************************************************
036--Activity
public void test(View view){
Intent intent = new Intent();
intent.setClass( this, SecondActivity. class);
//this.startActivity(intent);
this.startActivityForResult(intent, 1);
}
@Override
protected void onActivityResult( int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
String value = data.getStringExtra( "msg");
EditText editText = (EditText) findViewById(R.id.editText1 );
editText.setText(value);
}
----------------------------------------------------------------------------------
SecondActivity.java
public void test(View view){
EditText editText = (EditText) findViewById(R.id.editText2 );
String msg = editText.getText().toString();
Intent intent = getIntent();
intent.putExtra( "msg", msg);
this.setResult(3,intent);
this.finish(); //销毁当前的activity
}
*********************************************************************************************************