Kontakte mit Nummern in ListView und mehr

SeraphimSerapis

SeraphimSerapis

Enthusiast
1.233
Hallo Leute, ich arbeite zur Zeit an einer Überarbeitung meiner ICE App.

Hierzu möchte ich ein Feature überarbeiten, und zwar:

Nummern von Kontakten hinzufügen.

Bisher zeigt er mir die Kontakte zwar endlich alphabetisch an, aber er zeigt auch welche ohne Nummer.

Bei denen mit Nummer, kann er dennoch öfters nicht die Nummer extrahieren.

Hier mal der Code - vielleicht hat jemand eine Idee? Wäre sehr dankbar - sitze länger an diesem Problem:

Code:
protected void onCreate(Bundle savedInstanceState) {
	        super.onCreate(savedInstanceState);
	        setContentView(R.layout.list);
	        mPhone = (TextView) findViewById(R.id.phone);
	        getListView().setOnItemSelectedListener(this);
	        pref = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
		    
	        
	        //Cursor mit allen Kontakten
	        Cursor c = getContentResolver().query(People.CONTENT_URI, PROJECTION, null, null, "name ASC");
	        
	        startManagingCursor(c);
	        mPhoneColumnIndex = c.getColumnIndex(People.NUMBER);

	        ListAdapter adapter = new SimpleCursorAdapter(this,
	                android.R.layout.simple_list_item_1,
	                c,
	                new String[] {People.NAME},
	                new int[] {android.R.id.text1}
	        );
	        
	        getListView().setOnCreateContextMenuListener(new OnCreateContextMenuListener() { 
			    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { 
				    	menu.add(0, NUMBER1, 0, "Number 1");
				    	menu.add(0, NUMBER2, 0, "Number 2");
				    }
	        });
	        
	        setListAdapter(adapter);
	        
	    }

hier der Kontextmenü-Teil:
Code:
public boolean onContextItemSelected(MenuItem item) {
	    	  AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
	    	  Cursor c = (Cursor) getListView().getItemAtPosition(info.position);
	    	  String cNumber=null;
	    	  switch (item.getItemId()) {
	    	  	case NUMBER1:
	    	  		try {
	  	    		  cNumber = c.getString(mPhoneColumnIndex);
	  	    		  pref.edit().putString("number1",cNumber).commit();
	  	    		  pref.edit().putString("name1", ((TextView)getListView().getChildAt(info.position)).getText().toString()).commit();
	    	  		} catch (Exception e) {
	    	  			Toast.makeText(getBaseContext(), "Error: "+e, Toast.LENGTH_LONG).show();
	    	  			Log.d("Exception Nr. 1",e+"");
	    	  		}
		    	   
		    	    //Toast.makeText(getBaseContext(), "Name "+((TextView)getListView().getChildAt(info.position)).getText().toString()+" Nummer "+c.getString(mPhoneColumnIndex), Toast.LENGTH_LONG).show();
		    	    return true;
	    	  	case NUMBER2:
	    	  		try {
		  	    		  cNumber = c.getString(mPhoneColumnIndex);
		  	    		  pref.edit().putString("number2",cNumber).commit();
		  	    		  pref.edit().putString("name2", ((TextView)getListView().getChildAt(info.position)).getText().toString()).commit();
		    	  	} catch (Exception e) {
		    	  			Toast.makeText(getBaseContext(), "Error: "+e, Toast.LENGTH_LONG).show();
		    	  			Log.d("Exception Nr. 2",e+"");
		    	  	}
			    	//Toast.makeText(getBaseContext(), "Name "+((TextView)getListView().getChildAt(info.position)).getText().toString()+" Nummer "+c.getString(mPhoneColumnIndex), Toast.LENGTH_LONG).show();
		    	    return true;
	    	  	default:
	    		  	return super.onContextItemSelected(item);
	    	  }
	    }


Jemand eine Idee?

Vor allem auf 2.0 gibt es hier viele Fehler (es wird nur der Name übernommen oder nur die Nummer zB)

Danke, Tim
 
Zuletzt bearbeitet:

Ähnliche Themen

A
Antworten
10
Aufrufe
1.021
swa00
swa00
D
Antworten
23
Aufrufe
2.535
Data2006
D
M
  • MikelKatzengreis
Antworten
5
Aufrufe
127
swa00
swa00
Zurück
Oben Unten