2013-04-29 48 views
0

我正在创建一个应用程序来搜索数据库,并且我有一个部分输入搜索详细信息并显示可能结果的名称新活动中的按钮。它第一次运行良好,但如果我从该活动中按回来,然后尝试搜索不同的东西,然后最后一个按钮的结果,但旧结果仍然存在与新的。为什么当我按下并重新加载搜索时,我的按钮不会返回到隐形设置

public class search_page extends Activity implements OnClickListener { 
    static int number; 
    static int[] numberArray = new int[8]; 
    static int looped; 
    static int typeFound = 0; 
    TextView editText1; 
    Button search_button, search_button2 ; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.search_page); 

     editText1 = (EditText) findViewById(R.id.editText1); 
     search_button = (Button) findViewById(R.id.search_button); 
     search_button2 = (Button) findViewById(R.id.search_button2); 
     search_button.setOnClickListener(this); 
     search_button2.setOnClickListener(this); 
    } 

    public void onClick(View arg0) { 
     switch (arg0.getId()) { 
     case R.id.search_button: 
      sqlStuff search1 = new sqlStuff(search_page.this); 
      boolean found = false; 
      String Systname = editText1.getText().toString(); 

      search1.open(); 
      String[] IDSysNames = search1.getIDSysName(); 
      search1.close(); 
      for(int i = 0; i < IDSysNames.length; i++) { 
       if(Systname.equalsIgnoreCase(IDSysNames[i].toString())) { 
        found = true; 
        number = i; 
       } 
      } 

      if(found==true) { 
       Intent search = new Intent("com.MC.ChemPal.RESULT"); 
       startActivity(search); 
      } 
      else { 
       Dialog d = new Dialog(this); 
       d.setTitle("result not found"); 
       TextView tv = new TextView(this); 
       d.setContentView(tv); 
       d.show(); 
      } 
      break; 

     case R.id.search_button2: 
      boolean found2 = false; 
      boolean found3 = false; 
      sqlStuff search2 = new sqlStuff(search_page.this); 
      search2.open(); 
      String entry = editText1.getText().toString(); 
      String[] IDSysNames2 = search2.getIDSysName(); 
      String[] IDGroup = search2.getIDGroup(); 
      String[] IDMP = search2.getIDMP(); 
      String[] IDBP = search2.getIDBP(); 
      String[] IDComname = search2.getIDComname(); 
      String[] IDElement = search2.getIDElement(); 
      String[] IDMolarmass = search2.getIDMOLARMASS(); 
      search2.close(); 

      for(int i = 0; i < IDSysNames2.length; i++) { 
       if(entry.equalsIgnoreCase(IDSysNames2[i].toString())) { 
        found2 = true; 
        found3 = true; 
        typeFound = 1; 
        numberArray[looped] = i; 
       } 
       if(entry.equalsIgnoreCase(IDGroup[i].toString())) { 
        found2 = true; 
        found3 = true; 
        typeFound = 2; 
        numberArray[looped] = i; 
       } 
       if(entry.equalsIgnoreCase(IDMP[i].toString())) { 
        found2 = true; 
        found3 = true; 
        typeFound = 3; 
        numberArray[looped] = i; 
       } 
       if(entry.equalsIgnoreCase(IDBP[i].toString())) { 
        found2 = true; 
        found3 = true; 
        typeFound = 4; 
        numberArray[looped] = i; 
       } 

       if(entry.equalsIgnoreCase(IDComname[i].toString())) { 
        found2 = true; 
        found3 = true; 
        typeFound = 5; 
        numberArray[looped] = i; 
       } 

       if(IDElement[i].toString().contains(entry)) { 
        found2 = true; 
        found3 = true; 
        typeFound = 6; 
        numberArray[looped] = i; 
       } 

       if(entry.equalsIgnoreCase(IDMolarmass[i].toString())) { 
        found2 = true; 
        found3 = true; 
        typeFound = 7; 
        numberArray[looped] = i; 
       } 

       if(found2 == true) { 
        looped++; 
       } 
       found2 = false; 

      } 
      if (found3==true) { 
       Intent searching2 = new Intent("com.MC.ChemPal.SEARCHLIST"); 
       startActivity(searching2); 
      } 
      else { 
       Dialog d = new Dialog(this); 
       d.setTitle("result not found"); 
       TextView tv = new TextView(this); 
       d.setContentView(tv); 
       d.show(); 
      } 

      break; 
     } 
    } 

    public static int returnNum() { 
     return number; 
    } 

    public static int[] returnNumArray() { 
     return numberArray; 
    } 

    public static int returnlooped() { 
     return looped; 
    } 
} 

然后,该活动链接到这一个。

public class searchlist extends Activity implements OnClickListener { 
    static int buttonPress = 0; 
    int loops = 0; 

    public void onCreate(Bundle savedinstance){ 
     super.onCreate(savedinstance); 
     setContentView(R.layout.searchlist); 

     Button[] mybuttons = new Button[10]; 

     mybuttons[0] = (Button) findViewById(R.id.search1); 
     mybuttons[1] = (Button) findViewById(R.id.search2); 
     mybuttons[2] = (Button) findViewById(R.id.search3); 
     mybuttons[3] = (Button) findViewById(R.id.search4); 
     mybuttons[4] = (Button) findViewById(R.id.search5); 
     mybuttons[5] = (Button) findViewById(R.id.search6); 
     mybuttons[6] = (Button) findViewById(R.id.search7); 
     mybuttons[7] = (Button) findViewById(R.id.search8); 
     mybuttons[8] = (Button) findViewById(R.id.search9); 
     mybuttons[9] = (Button) findViewById(R.id.search10); 
     int i = 0; 

     if(!mybuttons[0].getText().equals("-")) 
     { 
     mybuttons[0].setText("-"); 
     mybuttons[0].setVisibility(View.INVISIBLE); 
     } 
     if(!mybuttons[1].getText().equals("-")) 
     { 
     mybuttons[1].setText("-"); 
     mybuttons[1].setVisibility(View.INVISIBLE); 
     } 
     if(!mybuttons[2].getText().equals("-")) 
     { 
     mybuttons[2].setText("-"); 
     mybuttons[2].setVisibility(View.INVISIBLE); 
     } 
     if(!mybuttons[3].getText().equals("-")) 
     { 
     mybuttons[3].setText("-"); 
     mybuttons[3].setVisibility(View.INVISIBLE); 
     } 
     if(!mybuttons[4].getText().equals("-")) 
     { 
     mybuttons[4].setText("-"); 
     mybuttons[4].setVisibility(View.INVISIBLE); 
     } 
     if(!mybuttons[5].getText().equals("-")) 
     { 
     mybuttons[5].setText("-"); 
     mybuttons[5].setVisibility(View.INVISIBLE); 
     } 
     if(!mybuttons[6].getText().equals("-")) 
     { 
     mybuttons[6].setText("-"); 
     mybuttons[6].setVisibility(View.INVISIBLE); 
     } 
     if(!mybuttons[7].getText().equals("-")) 
     { 
     mybuttons[7].setText("-"); 
     mybuttons[7].setVisibility(View.INVISIBLE); 
     } 
     if(!mybuttons[8].getText().equals("-")) 
     { 
     mybuttons[8].setText("-"); 
     mybuttons[8].setVisibility(View.INVISIBLE); 
     } 
     if(!mybuttons[9].getText().equals("-")) 
     { 
     mybuttons[9].setText("-"); 
     mybuttons[9].setVisibility(View.INVISIBLE); 
     } 


     sqlStuff searching = new sqlStuff(searchlist.this); 

     searching.open(); 
     String[] IDSysNames = searching.getIDSysName(); 
     loops = search_page.returnlooped(); 
     int[] teacup = search_page.returnNumArray(); 
     searching.close(); 


     for(i=0; i < loops; i++) 
     { 
      if(IDSysNames[teacup[i]] != null) 
      { 
      mybuttons[i].setText(IDSysNames[teacup[i]]); 
      } 
     } 

     if(!mybuttons[0].getText().equals("-")) 
     { 
     mybuttons[0].setOnClickListener(this); 
     mybuttons[0].setVisibility(View.VISIBLE); 
     } 
     if(!mybuttons[1].getText().equals("-")) 
     { 
     mybuttons[1].setOnClickListener(this); 
     mybuttons[1].setVisibility(View.VISIBLE); 
     } 
     if(!mybuttons[2].getText().equals("-")) 
     { 
     mybuttons[2].setOnClickListener(this); 
     mybuttons[2].setVisibility(View.VISIBLE); 
     } 
     if(!mybuttons[3].getText().equals("-")) 
     { 
     mybuttons[3].setOnClickListener(this); 
     mybuttons[0].setVisibility(View.VISIBLE); 
     } 
     if(!mybuttons[4].getText().equals("-")) 
     { 
     mybuttons[4].setOnClickListener(this); 
     mybuttons[4].setVisibility(View.VISIBLE); 
     } 
     if(!mybuttons[5].getText().equals("-")) 
     { 
     mybuttons[5].setOnClickListener(this); 
     mybuttons[5].setVisibility(View.VISIBLE); 
     } 
     if(!mybuttons[6].getText().equals("-")) 
     { 
     mybuttons[6].setOnClickListener(this); 
     mybuttons[6].setVisibility(View.VISIBLE); 
     } 
     if(!mybuttons[7].getText().equals("-")) 
     { 
     mybuttons[7].setOnClickListener(this); 
     mybuttons[7].setVisibility(View.VISIBLE); 
     } 
     if(!mybuttons[8].getText().equals("-")) 
     { 
     mybuttons[8].setOnClickListener(this); 
     mybuttons[8].setVisibility(View.VISIBLE); 
     } 
     if(!mybuttons[9].getText().equals("-")) 
     { 
     mybuttons[9].setOnClickListener(this); 
     mybuttons[9].setVisibility(View.VISIBLE); 
     } 
    } 

    public void onClick(View arg0) { 
     // TODO Auto-generated method stub 
     switch (arg0.getId()) { 

     case 
     R.id.search1: 
     buttonPress = 0; 
     Intent search = new Intent("com.MC.ChemPal.RESULT2"); 
     startActivity(search); 
     break; 

     case 
     R.id.search2: 
      buttonPress = 1; 
      Intent search2 = new Intent("com.MC.ChemPal.RESULT2"); 
      startActivity(search2); 

      break; 

     case 
     R.id.search3: 
      buttonPress = 2; 
      Intent search3 = new Intent("com.MC.ChemPal.RESULT2"); 
      startActivity(search3); 
      break; 


     case 
     R.id.search4: 
      buttonPress=3; 
      Intent search4 = new Intent("com.MC.ChemPal.RESULT2"); 
      startActivity(search4); 
      break; 


     case 
     R.id.search5: 
      buttonPress=4; 
      Intent search5 = new Intent("com.MC.ChemPal.RESULT2"); 
     startActivity(search5); 
      break; 

     case 
     R.id.search6: 
      buttonPress=5; 
      Intent search6 = new Intent("com.MC.ChemPal.RESULT2"); 
     startActivity(search6); 
      break; 


     case 
     R.id.search7: 
      buttonPress=6; 
      Intent search7 = new Intent("com.MC.ChemPal.RESULT2"); 
      startActivity(search7); 
      break; 

     case 
     R.id.search8: 
      buttonPress=7; 
      Intent search8 = new Intent("com.MC.ChemPal.RESULT2"); 
      startActivity(search8); 
      break; 

     case 
     R.id.search9: 
      buttonPress=8; 
      Intent search9 = new Intent("com.MC.ChemPal.RESULT2"); 
      startActivity(search9); 
      break; 

     case 
     R.id.search10: 
      buttonPress=9; 
      Intent search10 = new Intent("com.MC.ChemPal.RESULT2"); 
      startActivity(search10); 
      break; 

     } 

    } 

    public static int getButtonPress() { 
     return buttonPress; 
    } 

    public void onResume(){ 
    super.onResume(); 
    setContentView(R.layout.searchlist); 

    Button[] mybuttons = new Button[10]; 
    onResume(); 
    mybuttons[0] = (Button) findViewById(R.id.search1); 
    mybuttons[1] = (Button) findViewById(R.id.search2); 
    mybuttons[2] = (Button) findViewById(R.id.search3); 
    mybuttons[3] = (Button) findViewById(R.id.search4); 
    mybuttons[4] = (Button) findViewById(R.id.search5); 
    mybuttons[5] = (Button) findViewById(R.id.search6); 
    mybuttons[6] = (Button) findViewById(R.id.search7); 
    mybuttons[7] = (Button) findViewById(R.id.search8); 
    mybuttons[8] = (Button) findViewById(R.id.search9); 
    mybuttons[9] = (Button) findViewById(R.id.search10); 
    int i = 0; 


    if(!mybuttons[0].getText().equals("-")) 
    { 
    mybuttons[0].setText("-"); 
    mybuttons[0].setVisibility(View.INVISIBLE); 
    } 
    if(!mybuttons[1].getText().equals("-")) 
    { 
    mybuttons[1].setText("-"); 
    mybuttons[1].setVisibility(View.INVISIBLE); 
    } 
    if(!mybuttons[2].getText().equals("-")) 
    { 
    mybuttons[2].setText("-"); 
    mybuttons[2].setVisibility(View.INVISIBLE); 
    } 
    if(!mybuttons[3].getText().equals("-")) 
    { 
    mybuttons[3].setText("-"); 
    mybuttons[3].setVisibility(View.INVISIBLE); 
    } 
    if(!mybuttons[4].getText().equals("-")) 
    { 
    mybuttons[4].setText("-"); 
    mybuttons[4].setVisibility(View.INVISIBLE); 
    } 
    if(!mybuttons[5].getText().equals("-")) 
    { 
    mybuttons[5].setText("-"); 
    mybuttons[5].setVisibility(View.INVISIBLE); 
    } 
    if(!mybuttons[6].getText().equals("-")) 
    { 
    mybuttons[6].setText("-"); 
    mybuttons[6].setVisibility(View.INVISIBLE); 
    } 
    if(!mybuttons[7].getText().equals("-")) 
    { 
    mybuttons[7].setText("-"); 
    mybuttons[7].setVisibility(View.INVISIBLE); 
    } 
    if(!mybuttons[8].getText().equals("-")) 
    { 
    mybuttons[8].setText("-"); 
    mybuttons[8].setVisibility(View.INVISIBLE); 
    } 
    if(!mybuttons[9].getText().equals("-")) 
    { 
    mybuttons[9].setText("-"); 
    mybuttons[9].setVisibility(View.INVISIBLE); 
    } 


    sqlStuff searching = new sqlStuff(searchlist.this); 

    searching.open(); 
    String[] IDSysNames = searching.getIDSysName(); 
    loops = search_page.returnlooped(); 
    int[] teacup = search_page.returnNumArray(); 
    searching.close(); 


    for(i=0; i < loops; i++) 
    { 
     if(IDSysNames[teacup[i]] != null) 
     { 
     mybuttons[i].setText(IDSysNames[teacup[i]]); 
     } 
    } 

    if(!mybuttons[0].getText().equals("-")) 
    { 
    mybuttons[0].setOnClickListener(this); 
    mybuttons[0].setVisibility(View.VISIBLE); 
    } 
    if(!mybuttons[1].getText().equals("-")) 
    { 
    mybuttons[1].setOnClickListener(this); 
    mybuttons[1].setVisibility(View.VISIBLE); 
    } 
    if(!mybuttons[2].getText().equals("-")) 
    { 
    mybuttons[2].setOnClickListener(this); 
    mybuttons[2].setVisibility(View.VISIBLE); 
    } 
    if(!mybuttons[3].getText().equals("-")) 
    { 
    mybuttons[3].setOnClickListener(this); 
    mybuttons[0].setVisibility(View.VISIBLE); 
    } 
    if(!mybuttons[4].getText().equals("-")) 
    { 
    mybuttons[4].setOnClickListener(this); 
    mybuttons[4].setVisibility(View.VISIBLE); 
    } 
    if(!mybuttons[5].getText().equals("-")) 
    { 
    mybuttons[5].setOnClickListener(this); 
    mybuttons[5].setVisibility(View.VISIBLE); 
    } 
    if(!mybuttons[6].getText().equals("-")) 
    { 
    mybuttons[6].setOnClickListener(this); 
    mybuttons[6].setVisibility(View.VISIBLE); 
    } 
    if(!mybuttons[7].getText().equals("-")) 
    { 
    mybuttons[7].setOnClickListener(this); 
    mybuttons[7].setVisibility(View.VISIBLE); 
    } 
    if(!mybuttons[8].getText().equals("-")) 
    { 
    mybuttons[8].setOnClickListener(this); 
    mybuttons[8].setVisibility(View.VISIBLE); 
    } 
    if(!mybuttons[9].getText().equals("-")) 
    { 
    mybuttons[9].setOnClickListener(this); 
    mybuttons[9].setVisibility(View.VISIBLE); 
    } 
    } 

} 
+0

代码太多,模糊的问题。为什么你不能在'onResume()'中重置所有的东西? – Simon 2013-04-29 18:34:19

+0

如果你有1000个按钮而不是10个按钮?为你的按钮使用'for'循环。 – vorrtex 2013-04-29 19:00:47

+0

基本上更详细。我得到的是,如果我找到例如2搜索结果,然后mybuttons [0]和mybuttons [1]变得可见和正确的setText。这很好,但当我按回去,并尝试进行另一次搜索,然后我的按钮[2]和mybuttons [3]变得可见,并且setText和mybuttons [0]和mybuttons [1]具有相同的文本并保持可见状态,这是什么即时尝试纠正。 – user1844616 2013-04-29 19:29:02

回答

0

您更改了视图内按钮的状态。移到其他活动并返回将不会重置该视图。它在您的应用程序中维护状态,这会使状态更加不了解问题。

在你以编程方式设置状态的地方,我会建议对onResume进行重写,以将按钮的状态设置为你想要的状态。当您的活动初始启动,重新启动时以及每次将活动带到前台时,都会调用它。

是指:Android life cycle activities

附加信息: 您张贴1个活动(search_page和searchlist),其中search_page明确要求searchlist。你提到你的问题是点击后退按钮。这个问题实际上并没有打到后面 - 这显然是有效的,这是活动恢复时的作用。

从你上次的评论看来,如果你在让按钮可见的话,如果他们有文字,所以问题不会让他们看到 - 这是行得通的,问题是错误的按钮有文字。

什么时候应该清除它们?当你返回到search_page?如果是这样,请让search_page中的onResume清除所有按钮中的文字。

+0

我基本上将代码复制到下面的onResume(),并导致崩溃。 – user1844616 2013-04-29 19:29:37

+0

你更改了哪个活动(search_page或searchlist)?我以为你是在search_page,然后去搜索列表,所以你的问题是返回到search_page ...不是?您要返回的活动是您需要更改的活动。 – Dave 2013-04-29 20:15:37

+0

我正在搜索search_page,然后即时去搜索列表,然后再返回到search_page,然后进行不同的搜索,然后再次搜索列表 – user1844616 2013-04-29 20:22:38

相关问题