2014-05-14 138 views
0

我面临一些奇怪的问题,当我从Activity 1移动到Activity 2列表视图,在活动1自动消失再次看到列表视图我需要再次启动Activity 1列表视图从列表视图消失移动到另一个活动

我从button将活动2活动1

的列表视图我不明白这种行为,我不确定的问题和解决方案,以及。

请帮我解决这个问题。

下面的代码:

活动1:

public class stockmanager extends Activity{ 

    String getentry; 
    private int storeID=0; 
    //Database d; 
    StockTable st; 
    StockList sl; 
    Database d; 
    private String getstocks; 
    public Cursor a1; 
    Intent bd; 
    Intent sd; 
    String s,AllStocks; 
    private String deletestock_sl,deletestock_st; 
    TextView displaystocks; 
    ListView popstocks; 
    poplist populatestocks; 
    int stockid; 
    Cursor getid; 

    static class ViewHolder { 

     CheckBox cb; 
     Button view1; 
    } 


    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.stockmanager); 

     d=new Database(getApplicationContext()); 
     st=new StockTable(getApplicationContext()); 
     sl=new StockList(getApplicationContext()); 


     new Dboperation().execute(); 


    } 
    public class poplist extends CursorAdapter{ 


     public poplist(Context context, Cursor c) { 
      super(context, c); 
      // TODO Auto-generated constructor stub 
     } 


     @Override 
     public void bindView(View view, Context context, Cursor c) { 
      // TODO Auto-generated method stub 

      final ViewHolder myviewholder=new ViewHolder(); 
      myviewholder.cb=(CheckBox) view.findViewById(R.id.checkBox1); 
      myviewholder.view1=(Button) view.findViewById(R.id.button1); 


      myviewholder.cb.setText(c.getString(c.getColumnIndexOrThrow(sl.Column2))); 


      myviewholder.cb.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        // TODO Auto-generated method stub 

        if(myviewholder.cb.isChecked()) 
        { 
         a.add((String) myviewholder.cb.getText()); 

        } 

       } 
      }); 

      myviewholder.view1.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        // TODO Auto-generated method stub 

        sd=new Intent(v.getContext(),Detail.class); 
        sd.putExtra("StockName", myviewholder.cb.getText()); 

        startActivity(sd);  //Activity 2 triggered here 


       } 
      }); 
     } 

     @Override 
     public View newView(Context context, Cursor c, ViewGroup parent) { 
      // TODO Auto-generated method stub 
      LayoutInflater inflater = LayoutInflater.from(context); 

      View v = inflater.inflate(R.layout.stocklist, parent, false); 
        bindView(v, context, c); 
        return v; 
//   return null; 
     } 


    } 

private class Dboperation extends AsyncTask<Void, Void, Cursor>{ 

     ProgressDialog pd; 
     @Override 
     protected Cursor doInBackground(Void... params) { 
      // TODO Auto-generated method stub 

      a1=Database.getInstance(getApplicationContext()).getWritableDatabase().rawQuery(sl.getstocks, null); 

      return a1; 
     } 


     protected void onPostExecute(Cursor result) { 
      if(a1.moveToNext()) 
      { 
       displaystocks.setVisibility(View.INVISIBLE); 
      } 
      else 
      { 
       displaystocks.setVisibility(View.VISIBLE); 
      } 
      //System.out.println("Entered onpostexecute"); 
      final poplist populatestocks=new poplist(getApplicationContext(),a1) ; 
      popstocks.setAdapter(populatestocks); 

      if(pd!=null) 
       pd.dismiss(); 

     } 

     @Override 
     protected void onPreExecute() { 

      pd=new ProgressDialog(stockmanager.this); 
      pd.setMessage("Please wait.... Loading Data"); 
      pd.show(); 
     } 

     protected void onProgressUpdate(Void... values) { 
     } 


    } 

@Override 
protected void onDestroy() { 
    // TODO Auto-generated method stub 
super.onDestroy(); 
if(a1!=null){ 
    a1.close(); 
} 
if(Database.getInstance(getApplicationContext())!=null){ 
    Database.getInstance(getApplicationContext()).close(); 
    } 

} 

@Override 
protected void onPause() { 
    // TODO Auto-generated method stub 
    super.onPause(); 
    if(a1!=null){ 
     a1.close(); 
    } 
    if(Database.getInstance(getApplicationContext())!=null){ 
     Database.getInstance(getApplicationContext()).close(); 
     } 
} 
} 

回答

0

这是正常现象。在这种情况下,Documentation for Activity应该帮助你。这个链接应该告诉你一切你需要知道你为什么看到这种行为。

虽然有可能同时有肉眼可见的两项活动的用户,我很少看到这样比使用其他片段做任何事情,我不会推荐它一般。如果你想要弹出一个显示新数据的按钮点击窗口,那么你可能应该使用类似于布局的东西来切换其可见性,或者可能使用对话框。

+0

感谢您的答复......如果这是正常的行为..然后我可以再次调用''onResume'异步task'。这是建议的方法.. – Siva

相关问题