編輯:關於Android編程
<span style="font-size:14px">package com.example.fortest;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.zyj.util.DBHelper;
import com.zyj.util.UserListAdapter;
import android.app.Activity;
import android.app.ListActivity;
import android.content.Context;
import android.database.Cursor;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class UserList extends ListActivity {
//數據數據
private static final String[] COUNTRIES=new String[]{"中國","俄羅斯","英國","法國"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//方法一,不使用XML,類繼承ListActivity
/*//設置一個Adapter
setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,
COUNTRIES));*/
//方法二,使用XML布局文件
/*setContentView(R.layout.activity_user_list);
setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,
COUNTRIES));*/
//方法三,自定義要展示的元素
ArrayList<HashMap<String, Object>> data = getData();
//模仿SimpleAdapter實現的自己的adapter
setListAdapter(new UserListAdapter(this, data));
}
//listItem單擊事件
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
Toast.makeText(this, "您單擊了",Toast.LENGTH_LONG).show();
}
//得到用戶數據
private ArrayList<HashMap<String,Object>> getData()
{
ArrayList<HashMap<String,Object>> list = new ArrayList<HashMap<String,Object>>();
DBHelper dbHelper = new DBHelper(this);
Cursor c = dbHelper.query();
if (c.moveToFirst() && c.getCount()>0) {
for(int i = 0;i<c.getCount();i++)
{
HashMap<String,Object> m = new HashMap<String,Object>();
m.put("_id", c.getString(0));
m.put("name", c.getString(1));
m.put("pwd", c.getString(2));
list.add(m);
}
}
return list;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.user_list, menu);
return true;
}
//元素的緩沖類,用於優化ListView
private static class ItemViewCache{
public TextView idTextView;
public TextView nameTextView;
public TextView pwdTextView;
}
/**
* 自定義用戶列表listview
* @author zyj *
*/
public class UserListAdapter extends BaseAdapter {
private ArrayList<HashMap<String, Object>> data;
private Context context;
private LayoutInflater inflater;
public UserListAdapter(Context c,ArrayList<HashMap<String, Object>> d)
{
this.context = c;
this.data = d;
inflater = LayoutInflater.from(context);
}
//元素的個數
@Override
public int getCount() {
return data.size();
}
//獲取某一個位置的數據
@Override
public Object getItem(int position) {
return data.get(position);
}
//獲取唯一標識
@Override
public long getItemId(int position) {
return position;
}
//生成在ListView中展示的一個個元素View
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ItemViewCache cache = null;
//優化ListView
if(convertView == null)
{
convertView =inflater.inflate(R.layout.activity_user_list, null);
cache = new ItemViewCache();
cache.idTextView = (TextView) convertView.findViewById(R.id.id);
cache.nameTextView = (TextView) convertView.findViewById(R.id.name);
cache.pwdTextView = (TextView) convertView.findViewById(R.id.pwd);
convertView.setTag(cache);
}
else {
cache = (ItemViewCache) convertView.getTag();
}
//設置文本,然後返回這個View,用於ListView的Item展示
cache.idTextView.setText((String)data.get(position).get("_id"));
cache.nameTextView.setText((String)data.get(position).get("name"));
cache.pwdTextView.setText((String)data.get(position).get("pwd"));
return convertView;
}
}
}
</span>
Android自定義View之組合控件 ---- LED數字時鐘
先上圖 LEDView效果如圖所示。 之前看到一篇博客使用兩個TextView實現了該效果,於是我想用自定義控件的方式實現一個LEDView,使用時即可直接使用該控件。
Android編程中的5種數據存儲方式
本文介紹Android平台進行數據存儲的五大方式,分別如下:1 使用SharedPreferences存儲數據2 文件存儲數據 &nbs
Android繪制簡單餅狀圖
因為在項目中需要用到繪制餅狀圖,所以對github下的android-charts庫進行了精簡和修改,貌似該庫本身有些bug,例如文字繪制有時候會錯位,我改
Android6.0指紋識別開發案例
Android M指紋的資料太少,經過一段時間閱讀原生Android代碼,寫了以下例子,貢獻出來給需要幫助的人。以下內容基於64位的高通CPU,搭載fpc1020芯片,此