2013-04-29 50 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

相關問題