2011-05-24 42 views
1

我有一个简单的应用程序,在一个活动中我使用姓名和出生日期。我将它存储在数据库中。并在主要活动中我有线性布局,它将显示所有的名字。如何在删除元素后刷新线性布局视图

当我单击主活动中的任何名称时,它应该从数据库中删除该名称并刷新视图。

我能够从数据库中删除条目,但我的线性布局视图没有被更新。有人可以帮忙吗?

public class child extends活动私人意图意图; 私有LinearLayout布局; private LayoutInflater linflater; private int i = 0; private Cursor cr;

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

    layout = (LinearLayout)findViewById(R.id.layout); 
    Button addBtn = (Button)findViewById(R.id.AddButton); 
    Button remBtn = (Button)findViewById(R.id.RemoveButton); 
    intent = new Intent(this,login.class); 

    layout = (LinearLayout) findViewById(R.id.mylayout1); 
    linflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

    //Check the database if there are any entries available. If available, then 
    //list them on the main screen 
    final myDBAdapter mydb = new myDBAdapter(getApplicationContext()); 
    mydb.open(); 
    cr = mydb.GetMyData(); 
    if(cr.getCount()>0) 
    { 
     cr.moveToFirst(); 
     for (int i=0;i<cr.getCount();i++) 
     { 
      cr.moveToPosition(i); 
      buildList(cr.getString(1),cr.getString(2)); 

     } 
    } 

    //Start the login activity which will return the newly added baby name 
    addBtn.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      startActivityForResult(intent, 1001); 
     } 
    }); 

    //Remove all the entries from Database 
    remBtn.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      if(cr.getCount()>0) 
      { 
       cr.moveToFirst(); 
       for (int i=0;i<cr.getCount();i++) 
       { 
        Toast.makeText(getApplicationContext(), cr.getString(1), 
          Toast.LENGTH_LONG).show(); 
        mydb.RemoveEntry(cr.getString(1)); 
        cr.moveToPosition(i); 
       } 
      } 
     } 
    }); 

    mydb.close(); 

} 


private void buildList(final String bname,String bsex) 
{ 
    final View customView = linflater.inflate(R.layout.child_view, 
      null); 
    TextView tv = (TextView) customView.findViewById(R.id.TextView01); 

    //tv.setId(i); 
    tv.setText(bname); 
    tv.setTextColor(getResources().getColor(R.color.black)); 

    tv.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 

     myDBAdapter mydb = new myDBAdapter(getApplicationContext()); 
     mydb.open(); 
     if (mydb.RemoveEntry(bname)>0) 
     { 
      Toast.makeText(getApplicationContext(), "Row deleted", 
        Toast.LENGTH_LONG).show(); 

/////////////////////// ////////////////////////////////////////////////// ///////////////////////// 这里需要什么来更新视图? ///////////////////////////////////////////////// ////////////////////////////////////////////////// ///////////////////////////

 } 
     else 
     { 
      Toast.makeText(getApplicationContext(), "Row not deleted", 
        Toast.LENGTH_LONG).show(); 
     } 
     } 
    }); 

    layout.addView(customView); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data){ 
    if(requestCode == 1001) 
    { 
     if(resultCode == RESULT_OK) 
     {    
      Bundle extras = data.getExtras(); 
      buildList(extras.getString("bname"),extras.getString("bsex")); 

     } 
    } 
} 

}

回答

相关问题