1. Nimm jetzt an unserem AGM - Gewinnspiel teil - Informationen zum M1, A2 und A8 findest Du hier, hier und hier!
  1. SeraphimSerapis, 12.12.2009 #1
    SeraphimSerapis

    SeraphimSerapis Threadstarter Android-Guru

    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: 12.12.2009