package com.bestlinks.wp;
import android.app.AlertDialog;
import android.app.ListActivity;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
public class MainList extends ListActivity {
/** Called when the activity is first created. */
ListView listView;
ListAdapter adapter;
Cursor c;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
listView = (ListView) findViewById(android.R.id.list);
setAdapter();
listView.setOnItemLongClickListener(longClickItemListener);
}
AdapterView.OnItemLongClickListener longClickItemListener = new AdapterView.OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
final CharSequence[] items = { "编辑联系人", "删除联系人" };
AlertDialog.Builder builder = new AlertDialog.Builder(MainList.this);
builder.setTitle(c.getString(1));
builder.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
if (item == 0) {
Intent intent = new Intent(MainList.this,
AddContact.class);
intent.setAction(AddContact.EDIT_TABLE_ACTION);
Uri uri = Uri.parse(ContactProvider.CONTENT_URI + "/"
+ c.getString(0));
intent.setData(uri);
startActivity(intent);
} else if (item == 1) {
new AlertDialog.Builder(MainList.this).setTitle("删除")
.setMessage("将会删除此联系人").setPositiveButton("确定",
new DialogInterface.OnClickListener() {
public void onClick(
DialogInterface dialog,
int id) {
Uri uri = Uri
.parse(ContactProvider.CONTENT_URI
+ "/"
+ c
.getString(0));
getContentResolver().delete(
uri, null, null);
setAdapter();
}
}).setNegativeButton("取消",
new DialogInterface.OnClickListener() {
public void onClick(
DialogInterface dialog,
int id) {
dialog.cancel();
}
}).show();
}
}
});
return false;
}
};
private void setAdapter() {
// TODO Auto-generated method stub
Uri uri = ContactProvider.CONTENT_URI;
c = getContentResolver().query(uri, null, null, null,null);
startManagingCursor(c);
adapter = new SimpleCursorAdapter(this, R.layout.contact_list_item, c,
new String[] { "name", "tel" }, new int[] { R.id.name_list,
R.id.tel_list });
setListAdapter(adapter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
this.getMenuInflater().inflate(R.menu.option_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.item_add:
Intent intent = new Intent(this, AddContact.class);
intent.setAction(AddContact.INSERT_TABLE_ACTION);
startActivity(intent);
return true;
case R.id.item_cancel:
return true;
}
return super.onOptionsItemSelected(item);
}
}