如何解决删除元素后如何刷新线性布局视图
| 我有一个简单的应用程序,在一项活动中,我输入了姓名和出生日期。我将其存储在数据库中。在主活动中,我有linearlayout,它将显示所有名称。 当我单击主活动中的任何名称时,它应从数据库中删除该名称并刷新视图。 我可以从数据库中删除该条目,但是我的线性布局视图没有被更新。可以请一些帮助。 公共班级儿童扩展了活动{ 私人意图 私有LinearLayout布局; 专用LayoutInflater线性充气机; 私人INT我= 0; 私人游标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\"));
}
}
}
}
解决方法
嗯,我也在尝试使其工作,您是否尝试过使用游戏循环每5秒刷新一次LinearLayout?这可能被证明是有用的,因为它帮助我解决了我的问题http://aubykhan.wordpress.com/2010/04/25/android-game-programming-the-game-loop/
您可能还可以再次调用onCreate(Bundle)函数,但这是一种可怕的方法,它将起作用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。