尚学堂Android笔记--高明鑫 20140902

配置环境变量:
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
     }
*********************************************************************************************************

 

posted @ 2020-02-29 12:18  my_flash  阅读(34)  评论(0)    收藏  举报