1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Kontakte mit Nummern in ListView und mehr

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von SeraphimSerapis, 12.12.2009.

  1. SeraphimSerapis, 12.12.2009 #1
    SeraphimSerapis

    SeraphimSerapis Threadstarter Android-Guru

    Beiträge:
    3,072
    Erhaltene Danke:
    1,138
    Registriert seit:
    27.02.2009
    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

Diese Seite empfehlen