2012-09-11 99 views
0

我目前難以將複選框中的名稱從一個活動傳遞到另一個活動。實際上,該名稱在被選中後應該插入到我的數據庫表中,然後它將被傳遞給前面提到的活動。任何人有任何想法做到這一點?任何幫助提供將不勝感激。如何將複選框中選中的名稱傳遞給另一個活動

僅供參考,我的項目代碼。

BuddyDBAdapter buddyDB = new BuddyDBAdapter(this); 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.contacts_list); 

     ListView list = (ListView) findViewById(android.R.id.list); 
     //ListView list = getListView(); 
     list.setOnItemClickListener(new OnItemClickListener() 
     { 

      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, 
        long id) 
      { 

       Cursor cursor = null; 

       cursor = (Cursor) parent.getItemAtPosition(position); 
       Intent intent = new Intent(ContactsList.this, Create_Events.class); 
       intent.putExtra("name", cursor.getString(cursor.getColumnIndex(buddyDB.KEY_NAME))); 
       startActivity(intent); 

      } 

     }); 

     Uri allContacts = Uri.parse("content://contacts/people"); 

     Cursor c = managedQuery(allContacts, null, null, null, null); 

     String[] columns = new String[] {ContactsContract.Contacts.DISPLAY_NAME}; 
     int[] views = new int[] {R.id.contactCheckbox}; 

     startManagingCursor(c); 

     SimpleCursorAdapter friendsAdapter = new SimpleCursorAdapter(this, R.layout.contacts_list, c, columns, views); 
     this.setListAdapter(friendsAdapter); 



    } 

    @Override 
    public void onListItemClick(ListView l, View v, int position, long id) 
    { 
     buddyDB.open(); 
     //long name_id; 
     super.onListItemClick(l, v, position, id); 

     Cursor c = ((SimpleCursorAdapter)l.getAdapter()).getCursor(); 
     c.moveToPosition(position); 

     /*TextView contactName = (TextView) v.findViewById(R.id.contactName); 
     String NameValue = contactName.getText().toString(); 

     name_id = buddyDB.insertNames(NameValue); 


     Toast.makeText(getBaseContext(), 
       "Selected: " + buddiesList[position], Toast.LENGTH_SHORT).show();  
     buddyDB.close();*/ 


      nameCheck = (CheckBox) v.findViewById(R.id.contactCheckbox); 
      nameCheck.setOnCheckedChangeListener(new OnCheckedChangeListener() 
       {    
        @Override 
        public void onCheckedChanged(CompoundButton buttonView, 
          boolean isChecked) 
        { 
         long name_id; 
         String NameValue = nameCheck.getText().toString(); 
         name_id = buddyDB.insertNames(NameValue); 
         /*if(isChecked) 
         { 
          nameCheck = 1; 
         }else 
         { 
          nameCheck = 0; 
         }*/     
        }     
       });  
      buddyDB.close();   
    } 

} 

再次,任何人的幫助將不勝感激。非常感謝!

+0

什麼不工作?你的代碼看起來很好。你是否得到任何異常或數據沒有插入......? –

+0

嗨,問題是當名稱被檢查時,數據沒有被插入。 – CallMyName

+0

作業http://stackoverflow.com/questions/12362608/cant-insert-checkbox-values-into-sqlitedatabase-from-listview? – Luksprog

回答

0

使用此代碼要將參數傳遞給其他活動的位置。

Intent n = new Intent(actA.this , actB.class); 
n.putExtra("name", NameValue); 
startActivity(n); 
0

這或許可以幫助你

從oneActivity

Intent n = new Intent(actA.this , actB.class); 
n.putExtra("name", NameValue); 
startActivity(n); 

通過名稱值要獲得給定的值

Intent igetlist = getIntent(); 
String singleid = igetlist.getExtras().getString("name"); 
相關問題