[安卓初学者实验]AdapterView与Notification练习

1.  实验目的

 

理解掌握Android界面的AdapterView、ScrollView和Notification的使用

 

2.  实验工具

 

计算机,安装Eclipse、JDK、Android SDK、Genymotion等安卓开发环境

 

3.  实验题目

 

1)    以d) BaseAdapter实现以全国23省、4直辖市、5自治区和2特别行政区为列表项的ListView,并加上垂直滚动条。

2)     当点击列表项时,会在状态栏显示一条通知。通知要求具有以下属性:自动消失、通知提示信息、通知图标、标题、内容(为该列表项所显示省份名称以及对应的省会城市,如“您好!浙江省的省会是杭州市!”)、时间、自定义声音和振动。

 

4.java代码

import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.app.NotificationCompat;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;

public class MainActivity extends Activity {
	public static int NOTIFYID = 1;
	private ListView listview;
	private String[] name = { "北京", "天津", "重庆", "上海", "河北", "山西", "辽宁", "吉林",
			"黑龙江", "江苏", "浙江", "安徽", "福建", "江西", "山东", "河南", "湖北", "湖南", "广东",
			"海南", "四川", "贵州", "云南", "陕西", "甘肃", "青海", "台湾", "内蒙古", "广西壮族",
			"西藏", "宁夏回族", "新疆维吾尔", "香港", "澳门特别" };
	private String[] desc = { "市", "市", "市", "市", "省", "省", "省", "省", "省", "省",
			"省", "省", "省", "省", "省", "省", "省", "省", "省", "省", "省", "省", "省",
			"省", "省", "省", "省", "自治区", "自治区", "自治区", "自治区", "自治区", "特别行政区",
			"特别行政区" };
	private String[] city = new String[] { "北京市", "天津市", "重庆市", "上海市", "石家庄市",
			"太原市 ", "沈阳市", "长春市 ", "哈尔滨市", "南京市", "杭州市", "合肥市", "福州市 ", "南昌市",
			"济南市", "郑州市", " 武汉市 ", "长沙市", "广州市 ", "海口市", "成都市", "贵阳市", "昆明市",
			"西安市", "兰州市 ", "西宁市", "台北市", "呼和浩特市", "南宁市", "拉萨", "银川市", "乌鲁木齐市",
			"香港", "澳门" };

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		final NotificationManager mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
		final NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
				this);
		final PendingIntent contentIntent = null;
		listview = (ListView) findViewById(R.id.listView1);
		BaseAdapter adapter = new BaseAdapter() {
			@Override
			public int getCount() {
				// TODO Auto-generated method stub
				return 34;
			}

			@Override
			public Object getItem(int position) {
				// TODO Auto-generated method stub
				return null;
			}

			@Override
			public long getItemId(int position) {
				// TODO Auto-generated method stub
				return position;
			}

			@Override
			public View getView(int position, View convertView, ViewGroup parent) {
				// TODO Auto-generated method stub
				LinearLayout line = new LinearLayout(MainActivity.this);
				line.setOrientation(0);
				TextView text1 = new TextView(MainActivity.this);
				TextView text2 = new TextView(MainActivity.this);
				text1.setText(name[position]);
				text2.setText(desc[position]);
				text1.setTextSize(24);
				text2.setTextSize(24);
				text2.setTextColor(Color.rgb(230, 0, 0));
				line.addView(text1);
				line.addView(text2);
				return line;
			}
		};
		listview.setAdapter(adapter);
		listview.setOnItemClickListener(new OnItemClickListener() {
			int setNumber = 1;

			@Override
			public void onItemClick(AdapterView<?> parent, View view,
					int position, long id) {
				// TODO Auto-generated method stub

				mBuilder.setSmallIcon(R.drawable.maps)
						.setContentTitle(
								"您刚刚点击了" + name[position] + desc[position])
						.setAutoCancel(true)
						// .setContentIntent(contentIntent)
						.setNumber(setNumber)
						.setTicker("您有一条通知,请注意查看")
						.setWhen(System.currentTimeMillis())
						.setPriority(Notification.PRIORITY_MAX)
						.setOngoing(false)
						.setDefaults(
								Notification.DEFAULT_VIBRATE
										| Notification.DEFAULT_SOUND)
						.setContentText(
								name[position] + desc[position] + "的省会是:"
										+ city[position]);
				mNotificationManager.notify(NOTIFYID, mBuilder.build());
				setNumber += 1;
			}
		});
	}

	@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;
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// Handle action bar item clicks here. The action bar will
		// automatically handle clicks on the Home/Up button, so long
		// as you specify a parent activity in AndroidManifest.xml.
		int id = item.getItemId();
		if (id == R.id.action_settings) {
			return true;
		}
		return super.onOptionsItemSelected(item);
	}
}

5.虚拟机效果图

效果图效果如

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值