• 慕课网-安卓攻城狮视频学习及练习(三)


    arrayadapter+simpleadapter

     1 public class MainActivity extends Activity  {
     2 
     3     private ListView list;//视图,即为电视屏幕
     4     private ArrayAdapter<String> arradapter;//数据适配器,适用于数组+集合,即为无线
     5     private SimpleAdapter simadapter;
     6     private List<Map<String, Object>> datalist;
     7     @Override
     8     protected void onCreate(Bundle savedInstanceState) {
     9         super.onCreate(savedInstanceState);
    10         setContentView(R.layout.activity_main);
    11 
    12         list =(ListView)findViewById(R.id.listView1);//数组形式的数据源,即为电视台
    13     //1.新建一个数据适配器
    14 //.SimpleAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to)
    15     //2.适配器加载适配源
    16     String [] arrdata={"mook1","i","like","u"};
    17     arradapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arrdata);
    18 
    19     datalist=new ArrayList<Map<String,Object>>();
    20     simadapter=new SimpleAdapter(this, getdata(), R.layout.item, new String[]{"pic","text"}, new int[]{R.id.pic,R.id.text});
    21         //3.视图加载适配器
    22         //list.setAdapter(arradapter);
    23         list.setAdapter(simadapter);
    24 
    25     }
    26     private List<Map<String, Object>> getdata(){
    27         for (int i=0;i<20;i++){
    28             Map<String , Object> map=new HashMap<String, Object>();
    29             map.put("pic", R.drawable.ic_launcher);
    30             map.put("text", "mook"+i);
    31             datalist.add(map);
    32         }
    33         return datalist;
    34     }
    35 
    36 }

    spinner

    这里写图片描述

     1 public class MainActivity extends Activity  {
     2    private TextView text1,text2,text3;
     3    private EditText edit;
     4    private Spinner spin;
     5    private ArrayAdapter<String> arr_adapter;
     6     @Override
     7     protected void onCreate(Bundle savedInstanceState) {
     8         super.onCreate(savedInstanceState);
     9         setContentView(R.layout.activity_main);
    10 
    11         text1=(TextView)findViewById(R.id.textView1);
    12         text2=(TextView)findViewById(R.id.textView2);
    13         text3=(TextView)findViewById(R.id.textView3);
    14 
    15 
    16         spin=(Spinner)findViewById(R.id.spinner);
    17         edit=(EditText)findViewById(R.id.editText1);
    18 
    19         //1、新建适配器 2、适配器加载数据源 3、视图加载适配器
    20         String[] data=new String[]{"小学","初中","高中","本科","研究生"};
    21         arr_adapter=new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, data);
    22         arr_adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
    23         spin.setAdapter(arr_adapter);
    24 
    25         spin.setOnItemSelectedListener(listener);
    26 
    27 
    28     }
    29     private Spinner.OnItemSelectedListener listener= 
    30             new Spinner.OnItemSelectedListener() {
    31 
    32                 @Override
    33                 public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    34                     // TODO Auto-generated method stub
    35                      String s1=edit.getText().toString();
    36                      String s2=spin.getSelectedItem().toString();
    37 
    38                      text3.setText(s1+"的学历:"+s2);
    39                 }
    40 
    41                 @Override
    42                 public void onNothingSelected(AdapterView<?> parent) {
    43                     // TODO Auto-generated method stub
    44 
    45                 }
    46             };
    47 
    48 
    49 }

    Android攻城狮的第一门课(入门篇)
    第5章 认识按钮Button以及ImageButton
    text属性内容放置在value-string.xml中
    这里写图片描述

    这里写图片描述

    加注释快捷键:
    ctrl+/ //注释
    ctrl+shift+/ /**/注释

    监听三种:

     1 public class MainActivity extends Activity implements OnClickListener{
     2 
     3 
     4     private Button btn;
     5     @Override
     6     protected void onCreate(Bundle savedInstanceState) {
     7         super.onCreate(savedInstanceState);
     8         setContentView(R.layout.activity_main);
     9 
    10         btn=(Button)findViewById(R.id.button1);
    11         /*监听的三种方式
    12          * 1、匿名内部类
    13          * 2、外部类
    14          * 3.接口
    15         */
    16 
    17     /* 1
    18      * btn.setOnClickListener(new OnClickListener() {
    19 
    20         @Override
    21         public void onClick(View v) {
    22             // TODO 自动生成的方法存根
    23             Log.i("tag", "匿名内部类");
    24             //Toast.makeText(MainActivity.this, "匿名", Toast.LENGTH_LONG);
    25     }
    26     });*/
    27 
    28         //btn.setOnClickListener(listener);
    29         btn.setOnClickListener(this);
    30     }
    31     /*2
    32      * OnClickListener listener =new OnClickListener() {
    33 
    34         @Override
    35         public void onClick(View v) {
    36             // TODO 自动生成的方法存根
    37             Log.i("tag", "匿名内部类");
    38             Toast.makeText(MainActivity.this, "匿名", Toast.LENGTH_LONG);
    39         }
    40     };*/
    41     @Override
    42     public void onClick(View v) {
    43         // TODO 自动生成的方法存根
    44         Log.i("tag", "匿名内部类");
    45 
    46     }
    47 
    48 
    49 
    50 
    51 
    52 
    53 
    54 
    55 }

    textview实现跑马灯效果

     1 <com.example.meng.marqueettext
     2         android:id="@+id/textView2"
     3         android:layout_width="wrap_content"
     4         android:layout_height="wrap_content"
     5         android:singleLine="true"//单行
     6         android:ellipsize="marquee"//去掉省略号
     7         android:focusable="true"//使其循环
     8         android:marqueeRepeatLimit="marquee_forever"
     9         //无限制循环
    10         android:focusableInTouchMode="true"
    11         android:text="@string/text_name"/>
    12 
    13 
    14     <com.example.meng.marqueettext
    15         android:id="@+id/textView1"
    16         android:layout_marginTop="10dp"
    17         android:layout_width="wrap_content"
    18         android:layout_height="wrap_content"
    19         android:singleLine="true"
    20         android:ellipsize="marquee"
    21         android:focusable="true"
    22         android:marqueeRepeatLimit="marquee_forever"
    23         android:focusableInTouchMode="true"
    24         android:text="@string/text_name"/>

    这里写图片描述
    这里写图片描述

    step1:textview增加若干属性,即可实现一个textview的跑马灯效果
    step2 : 复制一个textview,两个的情况下必须建立新的类marquee,继承textview,三个构造方法+isfucused方法return TRUE
    step3:包名+类名代替textview

    这里写图片描述

    动态匹配功能:显示的下拉列表,使用arrayadapter

     1 private AutoCompleteTextView act;
     2     private ArrayAdapter<String> arr_adapter;
     3     @Override
     4     protected void onCreate(Bundle savedInstanceState) {
     5         super.onCreate(savedInstanceState);
     6         setContentView(R.layout.activity_main);
     7         act=(AutoCompleteTextView) findViewById(R.id.autoCompleteTextView1);
     8         String[] resource={"beijing1","beijing2","beijing3","shanghai1","shanghai2"};
     9         arr_adapter =new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, 
    10                 resource);
    11         act.setAdapter(arr_adapter);
    12     }

    注意两条属性:
    提示
    输入几个字母开始提示

    1  android:hint="请输入你要搜索的关键词"
    2         android:completionThreshold="3" 

    这里写图片描述
    与autocompletetextview不同的是,可以用逗号作为分隔符,进行多选。

     1 private ArrayAdapter<String> arr_adapter;
     2     private MultiAutoCompleteTextView mct;
     3     @Override
     4     protected void onCreate(Bundle savedInstanceState) {
     5         super.onCreate(savedInstanceState);
     6         setContentView(R.layout.activity_main);
     7 
     8         mct=(MultiAutoCompleteTextView) findViewById(R.id.multiAutoCompleteTextView1);
     9 
    10 
    11         String[] resource={"beijing1","beijing2","beijing3","shanghai1","shanghai2"};
    12         arr_adapter =new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, 
    13                 resource);
    14 
    15         mct.setAdapter(arr_adapter);
    16 mct.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
    17 
    18     }

    这里写图片描述

     1 private ToggleButton tb;
     2     private ImageView iv;
     3     @Override
     4     protected void onCreate(Bundle savedInstanceState) {
     5         super.onCreate(savedInstanceState);
     6         setContentView(R.layout.activity_main);
     7 
     8         tb=(ToggleButton) findViewById(R.id.toggleButton1);
     9         iv=(ImageView) findViewById(R.id.imageView3);
    10 
    11         tb.setOnCheckedChangeListener(this);
    12     }
    13     @Override
    14     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
    15         //当tb被点击时,执行当前的方法
    16         //第一个参数检测是哪个tb被点击了,第二个参数判断当前tb的状态
    17         iv.setBackgroundResource(isChecked?R.drawable.open:R.drawable.close);
    18 
    19     }
    这里写图片描述

    这里写图片描述

     1 private CheckBox cb;
     2     @Override
     3     protected void onCreate(Bundle savedInstanceState) {
     4         super.onCreate(savedInstanceState);
     5         setContentView(R.layout.activity_main);
     6 
     7         cb=(CheckBox) findViewById(R.id.checkBox1);
     8         cb.setOnCheckedChangeListener(new OnCheckedChangeListener() {
     9 
    10             @Override
    11             public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
    12                 // 匿名内部类实现监听,通过该方法来监听CheckBox是否被选中
    13                 //ischecked参数可以判断当前的cb是否被选中
    14                 if (isChecked) {
    15             String text=        cb.getText().toString();
    16             Log.i("tag", text);//在控制台的日志中显示text
    17                 }
    18 
    19             }
    20         });
    这里写图片描述
     1 public class MainActivity extends Activity implements  android.widget.RadioGroup.OnCheckedChangeListener {
     2 
     3     private RadioGroup rg;
     4     @Override
     5     protected void onCreate(Bundle savedInstanceState) {
     6         super.onCreate(savedInstanceState);
     7         setContentView(R.layout.activity_main);
     8     rg=(RadioGroup) findViewById(R.id.radioGroup1); 
     9     rg.setOnCheckedChangeListener(this);
    10 
    11 
    12     }
    13 
    14     @Override
    15     public void onCheckedChanged(RadioGroup group, int checkedId) {
    16         switch (checkedId) {
    17         case R.id.radio1:
    18             Log.i("tag", "men");
    19             break;
    20         case R.id.radio2:
    21             Log.i("tag", "women");
    22             break;
    23         default:
    24             break;
    25         }
    26 
    27     }
    28 
    29 
    30 
    31 }

    使用接口时,继承的是android.widget.RadioGroup.OnCheckedChangeListener
    若直接写oncheckedchangelistener,必须要导入对应的包。
    radiogroup是单选,可以用switch语句

    这里写图片描述
    gravity决定其子类控件的属性
    写在线性布局中。

     1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     2     xmlns:tools="http://schemas.android.com/tools"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:gravity="bottom|center_horizontal"
     6      >
     7 
     8     <Button
     9         android:id="@+id/button1"
    10         android:layout_width="wrap_content"
    11         android:layout_height="wrap_content"
    12         android:text="Button" />
    13 
    14 </LinearLayout>

    这里写图片描述

    layout_gravity决定的是当前父类控件的位置。

     1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     2     xmlns:tools="http://schemas.android.com/tools"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5 
     6      >
     7 
     8     <Button
     9         android:id="@+id/button1"
    10         android:layout_width="wrap_content"
    11         android:layout_height="wrap_content"
    12         android:text="Button" 
    13         android:layout_gravity="center_horizontal|center"/>
    14 
    15 </LinearLayout>

    界面的布局,往往需要两种属性共同控制,父类和子类。
    如果父类和子类中的某些属性相悖,当然是听爸爸的啦~

    layout_weight 子类控件在父类控件中所占比例。

     1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     2     xmlns:tools="http://schemas.android.com/tools"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:orientation="vertical"
     6      >
     7 
     8     <Button
     9         android:id="@+id/button2"
    10         android:layout_width="fill_parent"
    11         android:layout_height="wrap_content"
    12         android:text="Button"
    13         android:layout_weight="1" />
    14 
    15     <Button
    16         android:id="@+id/button1"
    17         android:layout_width="fill_parent"
    18         android:layout_height="wrap_content"
    19         android:text="Button" 
    20         android:layout_weight="1"
    21        />
    22 
    23 </LinearLayout>

    这里写图片描述

  • 相关阅读:
    python+requests+excel 接口测试
    Pycharm配置git
    ubuntu16.04+ROS安装kinectV1
    ubuntu16.04安装有道词典
    ROS kinetic语音识别
    在Ubuntu16.04中python环境下实现tab键补全
    ros kinetic安装rbx1
    ubuntu14.04安装opencv3.1
    ubuntu16.04SSH无法连接
    VC6中函数点go to definition报告the symbol XXX is undefined
  • 原文地址:https://www.cnblogs.com/twomeng/p/9476257.html
Copyright © 2020-2023  润新知