0

私のアプリケーションでは、連絡先を Android アプリケーションのセーフ リストとして保存したいと考えています。保存目的で、電話帳から連絡先を取得したい。連絡先番号の取得は完了しましたが、アプリケーションに保存できないため、アプリケーションが閉じられてフェッチされた番号がクリアされ、リストがnullになると、助けてください.. !!!

public class SafeList extends ListActivity implements OnClickListener {
String number;
ArrayAdapter<String> adapter;
LayoutInflater layoutInflater = null;

List<String> safelist = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.safelist_layout);
    Button addContact = (Button) findViewById(R.id.addContact);
    addContact.setOnClickListener(this);
    safelist = new ArrayList<String>();
    adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,safelist);
    setListAdapter(adapter);

}

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
    // BoD con't: CONTENT_TYPE instead of CONTENT_ITEM_TYPE
    intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
    startActivityForResult(intent, 1);
    // Intent intent = new Intent(Intent.ACTION_PICK,
    // ContactsContract.Contacts.CONTENT_URI);
    // startActivityForResult(intent, 1);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);

    if (data != null) {
        Uri uri = data.getData();

        if (uri != null) {
            Cursor c = null;
            try {
                c = getContentResolver()
                        .query(uri,
                                new String[] {
                                        ContactsContract.CommonDataKinds.Phone.NUMBER,
                                        ContactsContract.CommonDataKinds.Phone.TYPE },
                                null, null, null);

                if (c != null && c.moveToFirst()) {
                    number = c.getString(0);
                    int type = c.getInt(1);
                    safelist.add(number);
                    adapter.notifyDataSetChanged();
                    showSelectedNumber();
                }
            } finally {
                if (c != null) {
                    c.close();
                }
            }
        }
    }
}


public View getView(int paramInt, View paramView, ViewGroup paramViewGroup)
{
    ViewHolder localViewHolder;
    TextView number;
  if (paramView == null)
  {
    paramView = SafeList.this.layoutInflater.inflate(R.layout.safelist_item, null);
    localViewHolder = new SafeList.ViewHolder();
    localViewHolder.number = ((TextView)paramView.findViewById(R.id.textContactNumber));
    paramView.setTag(localViewHolder);
  }
  while (true)
  {


    localViewHolder = (SafeList.ViewHolder)paramView.getTag();
    return paramView;
  }


}

static class ViewHolder {            
     public TextView number;
    }  
private void showSelectedNumber() {
    // TODO Auto-generated method stub
    Toast.makeText(this, number, Toast.LENGTH_LONG).show();
}

}

4

1 に答える 1