从零开始写一个小米便签

2015.10.21(第五天)

目标:采用ListView实现列表

前言:整个实现的过程是视图+控制器+数据填充

视图通:过ListView控件来实现,以列表的形式显示数据。

控制器:通过Adapter来实现,一共有四种:ArrayAdapter、SimpleAdapter、自定义Adapter、SimpleCursorAdapter。把数据源中的数据以某种样式(xml文件)显示在视图中。

数据:1.声明视图对象,根据id找到此对象;2声明控制器对象,根据构造方法实例化此对象;3.绑定Adapter对象到Adapter上。

详细链接:http://blog.csdn.net/lizzywu/article/details/17612789

第一步:在xml中添加ListView控件。

    <ListView
        android:id="@+id/list_home"
        android:layout_below="@id/relativeLayout1"
        android:layout_width="match_parent"
        android:layout_height="match_content"
 >
    </ListView>
这样就为ListView控件指定了一个id,然后将宽度和高度都设置为match_parent,这样ListView也就占据了整个布局的空间。其中,
        android:layout_below="@id/relativeLayout1"
这一句,可以将ListView的布局放置在标题layout的下面。

第二步:新建一个数据类来存储数据

新建Note.class

package com.hust.xiaomi;

public class Note {
	String title;
	String content;
	
	public Note(String title, String content) {
		// TODO Auto-generated constructor stub
		this.title = title;
		this.content= content;
	}
}


第三步:利用BaseAdapter制作有自己布局的ListView

	public class ListViewAdapter extends BaseAdapter {
		List<Note> mlistInfo;//新建一个List变量,类型为Note,变量名为mlistInfo

		public ListViewAdapter(List<Note> mlistInfo) {
			this.mlistInfo = mlistInfo;
		}

		@Override
		public int getCount() {//返回包含的Item的总个数
			// TODO Auto-generated method stub
			return mlistInfo.size();
		}

		@Override
		public Object getItem(int position) {//获得相应数据集合中特定位置的数据项
			// TODO Auto-generated method stub
			return mlistInfo.get(position);
		}

		@Override
		public long getItemId(int position) {//返回该position对应item的id adapterview也有类似方法:
			// TODO Auto-generated method stub
			return position;
		}

		@Override
		public View getView(int position, View convertView, ViewGroup parent) {//返回了每个item项所显示的view
			// TODO Auto-generated method stub
			if (convertView == null) {
				LayoutInflater inflater = (LayoutInflater) MainActivity.this
						.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
				convertView = inflater.inflate(R.layout.list_item_detail, null);
			}
			Note note = mlistInfo.get(position);
			TextView title = (TextView) convertView.findViewById(R.id.title);
			title.setText(note.title);
			TextView text = (TextView) convertView.findViewById(R.id.info);
			text.setText(note.content);
			return convertView;
		}
	}

重写Baseadapter时,我们需要重写四个方法:getCount,getItem(int position),getItemId(int position),getView方法。

getCount:决定了listview一共有多少个item。

getView:返回了每个item项所显示的view。

getItem:getItem方法不是在Baseadapter类中被调用的,而是在Adapterview中被调用的。

结果:


调整布局后:


2015.10.22-2015.10.23(第六天、第七天)

目标:实现第二界面的选择背景功能。

前言:点击图片,利用onClick函数来响应点击图片的过程。

第一步:新建第二个界面的布局文件activity_second.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/secondlayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/widget_big_green"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/five"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/image3"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="29dp"
        android:scaleType="fitCenter"
        android:src="@drawable/zhengwen_xuanyanse" />

    <RelativeLayout
        android:id="@+id/relativeLayout11"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@id/five"
        android:layout_alignTop="@id/five"
        android:orientation="vertical" >

        <ImageView
            android:id="@+id/five1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:scaleType="fitCenter"
            android:src="@drawable/zhengwen_xuanyanse_dangqian" />
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/relativeLayout22"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/five"
        android:layout_toRightOf="@+id/relativeLayout11"
        android:orientation="vertical" >

        <ImageView
            android:id="@+id/five2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:scaleType="fitCenter"
            android:src="@drawable/zhengwen_xuanyanse_dangqian" />
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/relativeLayout33"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/five"
        android:layout_toRightOf="@+id/relativeLayout22"
        android:orientation="vertical" >

        <ImageView
            android:id="@+id/five3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:scaleType="fitCenter"
            android:src="@drawable/zhengwen_xuanyanse_dangqian" />
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/relativeLayout44"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/five"
        android:layout_toRightOf="@+id/relativeLayout33"
        android:orientation="vertical" >

        <ImageView
            android:id="@+id/five4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:scaleType="fitCenter"
            android:src="@drawable/zhengwen_xuanyanse_dangqian" />
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/relativeLayout55"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/five"
        android:layout_toRightOf="@+id/relativeLayout44"
        android:orientation="vertical" >

        <ImageView
            android:id="@+id/five5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:scaleType="fitCenter"
            android:src="@drawable/zhengwen_xuanyanse_dangqian" />
    </RelativeLayout>

    <ImageView
        android:id="@+id/image3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_marginTop="18dp"
        android:layout_toRightOf="@+id/relativeLayout55"
        android:scaleType="fitCenter"
        android:src="@drawable/notes_btn_changecolors" />

</RelativeLayout>


第二步:在Main_activity.xml添加跳转代码

	class MyClickListener implements View.OnClickListener {
		@Override
		public void onClick(View v) {
			Intent intent = new Intent();
			intent.setClass(MainActivity.this, SecondActivity.class);
			startActivity(intent);
		}
	}
第三步:实现第二个页面的逻辑

package com.hust.xiaomi;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.RelativeLayout;

import com.example.xiaomi.R;

public class SecondActivity extends Activity {

	private ImageView select = null;
	private ImageView five = null;
	private ImageView five1 = null;
	private ImageView five2 = null;
	private ImageView five3 = null;
	private ImageView five4 = null;
	private ImageView five5 = null;

	private RelativeLayout layout = null;

	private RelativeLayout relativeLayout1 = null;
	private RelativeLayout relativeLayout2 = null;
	private RelativeLayout relativeLayout3 = null;
	private RelativeLayout relativeLayout4 = null;
	private RelativeLayout relativeLayout5 = null;

	private boolean isVisible = false;
	private boolean isVisible1 = true;
	private boolean isVisible2 = true;
	private boolean isVisible3 = true;
	private boolean isVisible4 = true;
	private boolean isVisible5 = true;

	private int imageidsSecond[] = { R.drawable.widget_big_yellow,
			R.drawable.widget_big_red, R.drawable.widget_big_blue,
			R.drawable.widget_big_green, R.drawable.widget_big_gray };

	private int flag = 1;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_second);

		select = (ImageView) findViewById(R.id.image3);
		layout = (RelativeLayout) findViewById(R.id.secondlayout);

		five = (ImageView) findViewById(R.id.five);
		five1 = (ImageView) findViewById(R.id.five1);
		five2 = (ImageView) findViewById(R.id.five2);
		five3 = (ImageView) findViewById(R.id.five3);
		five4 = (ImageView) findViewById(R.id.five4);
		five5 = (ImageView) findViewById(R.id.five5);
		relativeLayout1 = (RelativeLayout) findViewById(R.id.relativeLayout11);
		relativeLayout2 = (RelativeLayout) findViewById(R.id.relativeLayout22);
		relativeLayout3 = (RelativeLayout) findViewById(R.id.relativeLayout33);
		relativeLayout4 = (RelativeLayout) findViewById(R.id.relativeLayout44);
		relativeLayout5 = (RelativeLayout) findViewById(R.id.relativeLayout55);
		five1.setVisibility(View.INVISIBLE);
		five2.setVisibility(View.INVISIBLE);
		five3.setVisibility(View.INVISIBLE);
		five4.setVisibility(View.INVISIBLE);
		five5.setVisibility(View.INVISIBLE);
		five.setVisibility(View.INVISIBLE);
		select.setOnClickListener(new MyClickListener());
		relativeLayout1.setOnClickListener(new MyClickListener1());
		relativeLayout2.setOnClickListener(new MyClickListener2());
		relativeLayout3.setOnClickListener(new MyClickListener3());
		relativeLayout4.setOnClickListener(new MyClickListener4());
		relativeLayout5.setOnClickListener(new MyClickListener5());

	}

	class MyClickListener implements View.OnClickListener {
		@Override
		public void onClick(View v) {
			if (isVisible) {
				five.setVisibility(View.INVISIBLE);
				five1.setVisibility(View.INVISIBLE);
				five2.setVisibility(View.INVISIBLE);
				five3.setVisibility(View.INVISIBLE);
				five4.setVisibility(View.INVISIBLE);
				five5.setVisibility(View.INVISIBLE);

				isVisible = false;
			} else {
				five.setVisibility(View.VISIBLE);
				switch (flag) {
				case 1:
					five1.setVisibility(View.VISIBLE);
					break;
				case 2:
					five2.setVisibility(View.VISIBLE);
					break;
				case 3:
					five3.setVisibility(View.VISIBLE);
					break;
				case 4:
					five4.setVisibility(View.VISIBLE);
					break;
				case 5:
					five5.setVisibility(View.VISIBLE);
					break;
				}
				isVisible = true;
			}
		}
	}

	class MyClickListener1 implements View.OnClickListener {
		@Override
		public void onClick(View v) {
			flag = 1;
			layout.setBackgroundResource(imageidsSecond[flag - 1]);
			five.setVisibility(View.INVISIBLE);
			five1.setVisibility(View.INVISIBLE);
			five2.setVisibility(View.INVISIBLE);
			five3.setVisibility(View.INVISIBLE);
			five4.setVisibility(View.INVISIBLE);
			five5.setVisibility(View.INVISIBLE);
			isVisible = false;
			if (isVisible) {
				if (isVisible1) {
					five1.setVisibility(View.INVISIBLE);

					isVisible1 = false;
				} else {
					// five1.setVisibility(View.VISIBLE);

					isVisible1 = true;
				}
			}
		}
	}

	class MyClickListener2 implements View.OnClickListener {

		@Override
		public void onClick(View v) {
			flag = 2;
			layout.setBackgroundResource(imageidsSecond[flag - 1]);
			five.setVisibility(View.INVISIBLE);
			five1.setVisibility(View.INVISIBLE);
			five2.setVisibility(View.INVISIBLE);
			five3.setVisibility(View.INVISIBLE);
			five4.setVisibility(View.INVISIBLE);
			five5.setVisibility(View.INVISIBLE);
			isVisible = false;
			if (isVisible) {
				if (isVisible2) {
					five2.setVisibility(View.INVISIBLE);
					isVisible2 = false;
				} else {
					// five2.setVisibility(View.VISIBLE);

					isVisible2 = true;
				}
			}
		}
	}

	class MyClickListener3 implements View.OnClickListener {
		@Override
		public void onClick(View v) {
			flag = 3;
			layout.setBackgroundResource(imageidsSecond[flag - 1]);
			five.setVisibility(View.INVISIBLE);
			five1.setVisibility(View.INVISIBLE);
			five2.setVisibility(View.INVISIBLE);
			five3.setVisibility(View.INVISIBLE);
			five4.setVisibility(View.INVISIBLE);
			five5.setVisibility(View.INVISIBLE);
			isVisible = false;
			if (isVisible) {
				if (isVisible3) {
					five3.setVisibility(View.INVISIBLE);
					isVisible3 = false;
				} else {
					// five3.setVisibility(View.VISIBLE);

					isVisible3 = true;
				}
			}
		}
	}

	class MyClickListener4 implements View.OnClickListener {
		@Override
		public void onClick(View v) {
			flag = 4;
			layout.setBackgroundResource(imageidsSecond[flag - 1]);
			five.setVisibility(View.INVISIBLE);
			five1.setVisibility(View.INVISIBLE);
			five2.setVisibility(View.INVISIBLE);
			five3.setVisibility(View.INVISIBLE);
			five4.setVisibility(View.INVISIBLE);
			five5.setVisibility(View.INVISIBLE);
			isVisible = false;
			if (isVisible) {
				if (isVisible4) {
					five4.setVisibility(View.INVISIBLE);
					isVisible4 = false;
				} else {
					// five4.setVisibility(View.VISIBLE);

					isVisible4 = true;
				}
			}
		}
	}

	class MyClickListener5 implements View.OnClickListener {
		@Override
		public void onClick(View v) {
			flag = 5;
			layout.setBackgroundResource(imageidsSecond[flag - 1]);
			five.setVisibility(View.INVISIBLE);
			five1.setVisibility(View.INVISIBLE);
			five2.setVisibility(View.INVISIBLE);
			five3.setVisibility(View.INVISIBLE);
			five4.setVisibility(View.INVISIBLE);
			five5.setVisibility(View.INVISIBLE);
			isVisible = false;
			if (isVisible) {
				if (isVisible5) {
					five5.setVisibility(View.INVISIBLE);
					isVisible5 = false;
				} else {
					// five5.setVisibility(View.VISIBLE);

					isVisible5 = true;
				}
			}
		}
	}

}
















  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值