安卓study

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>

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值