安卓study

来源:互联网 发布:java图片保存到服务器 编辑:程序博客网 时间:2024/06/07 00:21

arrayadapter+simpleadapter

public class MainActivity extends Activity  {    private ListView list;//视图,即为电视屏幕    private ArrayAdapter<String> arradapter;//数据适配器,适用于数组+集合,即为无线    private SimpleAdapter simadapter;    private List<Map<String, Object>> datalist;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        list =(ListView)findViewById(R.id.listView1);//数组形式的数据源,即为电视台    //1.新建一个数据适配器//.SimpleAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to)    //2.适配器加载适配源    String [] arrdata={"mook1","i","like","u"};    arradapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arrdata);    datalist=new ArrayList<Map<String,Object>>();    simadapter=new SimpleAdapter(this, getdata(), R.layout.item, new String[]{"pic","text"}, new int[]{R.id.pic,R.id.text});        //3.视图加载适配器        //list.setAdapter(arradapter);        list.setAdapter(simadapter);    }    private List<Map<String, Object>> getdata(){        for (int i=0;i<20;i++){            Map<String , Object> map=new HashMap<String, Object>();            map.put("pic", R.drawable.ic_launcher);            map.put("text", "mook"+i);            datalist.add(map);        }        return datalist;    }}

spinner

这里写图片描述

public class MainActivity extends Activity  {   private TextView text1,text2,text3;   private EditText edit;   private Spinner spin;   private ArrayAdapter<String> arr_adapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        text1=(TextView)findViewById(R.id.textView1);        text2=(TextView)findViewById(R.id.textView2);        text3=(TextView)findViewById(R.id.textView3);        spin=(Spinner)findViewById(R.id.spinner);        edit=(EditText)findViewById(R.id.editText1);        //1、新建适配器 2、适配器加载数据源 3、视图加载适配器        String[] data=new String[]{"小学","初中","高中","本科","研究生"};        arr_adapter=new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, data);        arr_adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);        spin.setAdapter(arr_adapter);        spin.setOnItemSelectedListener(listener);    }    private Spinner.OnItemSelectedListener listener=             new Spinner.OnItemSelectedListener() {                @Override                public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {                    // TODO Auto-generated method stub                     String s1=edit.getText().toString();                     String s2=spin.getSelectedItem().toString();                     text3.setText(s1+"的学历:"+s2);                }                @Override                public void onNothingSelected(AdapterView<?> parent) {                    // TODO Auto-generated method stub                }            };}

2017/2/22

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

这里写图片描述

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

监听三种:

public class MainActivity extends Activity implements OnClickListener{    private Button btn;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        btn=(Button)findViewById(R.id.button1);        /*监听的三种方式         * 1、匿名内部类         * 2、外部类         * 3.接口        */    /* 1     * btn.setOnClickListener(new OnClickListener() {        @Override        public void onClick(View v) {            // TODO 自动生成的方法存根            Log.i("tag", "匿名内部类");            //Toast.makeText(MainActivity.this, "匿名", Toast.LENGTH_LONG);    }    });*/        //btn.setOnClickListener(listener);        btn.setOnClickListener(this);    }    /*2     * OnClickListener listener =new OnClickListener() {        @Override        public void onClick(View v) {            // TODO 自动生成的方法存根            Log.i("tag", "匿名内部类");            Toast.makeText(MainActivity.this, "匿名", Toast.LENGTH_LONG);        }    };*/    @Override    public void onClick(View v) {        // TODO 自动生成的方法存根        Log.i("tag", "匿名内部类");    }}

textview实现跑马灯效果

<com.example.meng.marqueettext        android:id="@+id/textView2"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:singleLine="true"//单行        android:ellipsize="marquee"//去掉省略号        android:focusable="true"//使其循环        android:marqueeRepeatLimit="marquee_forever"        //无限制循环        android:focusableInTouchMode="true"        android:text="@string/text_name"/>    <com.example.meng.marqueettext        android:id="@+id/textView1"        android:layout_marginTop="10dp"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:singleLine="true"        android:ellipsize="marquee"        android:focusable="true"        android:marqueeRepeatLimit="marquee_forever"        android:focusableInTouchMode="true"        android:text="@string/text_name"/>

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

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

这里写图片描述

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

private AutoCompleteTextView act;    private ArrayAdapter<String> arr_adapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        act=(AutoCompleteTextView) findViewById(R.id.autoCompleteTextView1);        String[] resource={"beijing1","beijing2","beijing3","shanghai1","shanghai2"};        arr_adapter =new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,                 resource);        act.setAdapter(arr_adapter);    }

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

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

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

private ArrayAdapter<String> arr_adapter;    private MultiAutoCompleteTextView mct;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mct=(MultiAutoCompleteTextView) findViewById(R.id.multiAutoCompleteTextView1);        String[] resource={"beijing1","beijing2","beijing3","shanghai1","shanghai2"};        arr_adapter =new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,                 resource);        mct.setAdapter(arr_adapter);mct.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());    }

这里写图片描述

private ToggleButton tb;    private ImageView iv;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        tb=(ToggleButton) findViewById(R.id.toggleButton1);        iv=(ImageView) findViewById(R.id.imageView3);        tb.setOnCheckedChangeListener(this);    }    @Override    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {        //当tb被点击时,执行当前的方法        //第一个参数检测是哪个tb被点击了,第二个参数判断当前tb的状态        iv.setBackgroundResource(isChecked?R.drawable.open:R.drawable.close);    }

这里写图片描述

这里写图片描述

private CheckBox cb;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        cb=(CheckBox) findViewById(R.id.checkBox1);        cb.setOnCheckedChangeListener(new OnCheckedChangeListener() {            @Override            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {                // 匿名内部类实现监听,通过该方法来监听CheckBox是否被选中                //ischecked参数可以判断当前的cb是否被选中                if (isChecked) {            String text=        cb.getText().toString();            Log.i("tag", text);//在控制台的日志中显示text                }            }        });

这里写图片描述

public class MainActivity extends Activity implements  android.widget.RadioGroup.OnCheckedChangeListener {    private RadioGroup rg;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    rg=(RadioGroup) findViewById(R.id.radioGroup1);     rg.setOnCheckedChangeListener(this);    }    @Override    public void onCheckedChanged(RadioGroup group, int checkedId) {        switch (checkedId) {        case R.id.radio1:            Log.i("tag", "men");            break;        case R.id.radio2:            Log.i("tag", "women");            break;        default:            break;        }    }}

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

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

<LinearLayout 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:gravity="bottom|center_horizontal"     >    <Button        android:id="@+id/button1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="Button" /></LinearLayout>

这里写图片描述

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

<LinearLayout 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"     >    <Button        android:id="@+id/button1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="Button"         android:layout_gravity="center_horizontal|center"/></LinearLayout>

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

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

<LinearLayout 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:orientation="vertical"     >    <Button        android:id="@+id/button2"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="Button"        android:layout_weight="1" />    <Button        android:id="@+id/button1"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="Button"         android:layout_weight="1"       /></LinearLayout>

这里写图片描述

0 0
原创粉丝点击