2016-06-09 48 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

相关问题