2016-06-09 84 views
0

我是Android的初學者這是我的第一個應用程序,所以我越來越多的懷疑。我們可以用一個按鈕三個或更多conditions.I做過這樣,但它不工作的幫助我(在此源和目標是兩個不同的自動完成的TextView)我們可以使用一個按鈕的兩個或兩個以上的條件

enter code here 

String[] source ={"Chennai","Hyderabad","Bangalore"}; 
String[] destination ={"Chennai","Hyderabad","Bangalore"}; 

if(source[0].equals("Chennai") &&destination[1].equals("Hyderabad")) 
{ 
    Button button=(Button)findViewById(R.id.searchtrain_button); 
    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent i=new Intent(MainActivity.this,Main2Activity.class); 
      startActivity(i); 
     } 
    }); 

} 
    else if (source[0].equals("Chennai") && destination[2].equals("Bangalore")) 
    { 
     Button button1=(Button)findViewById(R.id.searchtrain_button); 
     button1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent i1=new Intent(MainActivity.this,Main3Activity.class); 
       startActivity(i1); 
      } 
     }) 
+0

什麼不起作用?你能更明確嗎?像錯誤或只是無所事事? – Rucsi

+0

這裏的問題是它沒有檢查條件,它直接進入第一個功能,而不是轉向第二個功能。什麼情況我給它執行第一個功能,而不是其他。總之它沒有檢查條件。我希望你清楚如果不清楚,請告訴我。謝謝。 – chandra

+0

由於第一個條件成立,它執行第一個條件。你有沒有嘗試使第一個條件== false? – mgcaguioa

回答

1

你不覺得你必須檢查你的autocompletetextview文字,而不是你的陣列的,因爲你的排列情況將是真正的總是那麼它將永遠不會到別的條件。

Button button=(Button)findViewById(R.id.searchtrain_button); 
     button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       if(yourSourceAutoCompleteTextView.getText().toString().equals("Chennai") && yourDestinationAutoCompleteTextView.getText().toString().equals("Hyderabad")) { 
        Intent i=new Intent(MainActivity.this,Main2Activity.class); 
        startActivity(i); 
       } 
       else if(yourSourceAutoCompleteTextView.getText().toString().equals("Chennai") && yourDestinationAutoCompleteTextView.getText().toString().equals("Bangalore")){ 
        Intent i=new Intent(MainActivity.this,Main3Activity.class); 
        startActivity(i); 
       } 
      } 
     }); 
+1

WOW。謝謝。它的工作很棒。真的很感謝你。我在這方面工作了很長時間。最後它工作。謝謝KDeogharkar。感謝Stack Overflow。 – chandra

0

,您可以嘗試像這樣的

final String[] source ={"Chennai","Hyderabad","Bangalore"}; 
    final String[] destination ={"Chennai","Hyderabad","Bangalore"}; 


     Button button=(Button)findViewById(R.id.searchtrain_button); 
     button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       if(source[0].equals("Chennai") && destination[1].equals("Hyderabad")) { 
        Intent i=new Intent(MainActivity.this,Main2Activity.class); 
        startActivity(i); 
       } 
       else if(source[0].equals("Chennai") && destination[2].equals("Bangalore")){ 
        Intent i=new Intent(MainActivity.this,Main3Activity.class); 
        startActivity(i); 
       } 
      } 
     }); 

它應該工作。

+0

謝謝肖恩。感謝您的快速回復。但不幸的是,它的情況相同。即使在執行你的代碼後也是如此。它不檢查是否條件。它顯示了所有條件的mainactivity2.class。它不是在做其他部分(如果我輸入信源作爲欽奈和目的地爲班加羅爾,它只執行mainactivity2而不是根據條件執行mainactivity3)。不知道問題出在哪裏。謝謝。 – chandra

+0

也許你的問題不是按鈕點擊,你可以在這裏發佈更多的代碼嗎? –

+0

謝謝。我有另一個評論的解決方案。 – chandra

0

而不是創建取決於一個條件,你可以執行活動中的監聽器和處理click

在您的活動申報新OnClickListener():

public class ActivityNAme extends Activity implements View.OnClickListener { 

然後,找到按鈕,所有其他觀點:

Button button=(Button)findViewById(R.id.searchtrain_button); 
button.setOnClickListener(this); 

最後實現的onClick功能:

@Override 
public void onClick(View v) { 

    switch (v.getId()){ 

     ... Handle other buttons ... 

     case R.id.searchtrain_button: 
      //your code here 
      break; 

     ... 
    } 

}

+0

謝謝你的回覆。它的工作正常。謝謝。 – chandra

相關問題