2017-04-02 1 views
-2

Donc j'essaye d'implémenter une classe simple dans le studio android qui prend l'entrée d'utilisateur sous la forme d'un fileur et change la couleur du texte en conséquence. Cependant, même si la condition a été remplie, comme le montre la ligne de débogage, le programme n'exécutera pas le contenu de l'instruction if. debugging lineStudio Android si la condition de l'instruction est atteinte mais le programme ne l'entrera pas

'import android.content.Intent; 
import android.graphics.Color; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.Spinner; 
import android.widget.TextView; 
import android.widget.Toast; 

public class Colour extends AppCompatActivity { 

TextView tv; 
Spinner mySpinner; 
ArrayAdapter<CharSequence> adapter; 
public static final String EXTRA_MESSAGE = "message"; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_colour); 
    Intent intent = getIntent(); 
    String messageText = intent.getStringExtra(EXTRA_MESSAGE); 
    tv = (TextView)findViewById(R.id.message); 
    tv.setText(messageText); 
    mySpinner = (Spinner) findViewById(R.id.spinner); 
    adapter = ArrayAdapter.createFromResource(this,R.array.colours,android.R.layout.simple_spinner_item); 
     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    mySpinner.setAdapter(adapter); 
    mySpinner.setOnItemSelectedListener(new  AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
      Toast.makeText(getBaseContext(), parent.getItemIdAtPosition(position)+ " selected",Toast.LENGTH_LONG).show(); 
     } 

     @Override 
     public void onNothingSelected(AdapterView<?> parent) { 

     } 
    }); 

} 

public void change(View v){ 

    String text = mySpinner.getSelectedItem().toString(); 

    if(text == "Red"){ 
     tv.setTextColor(Color.RED); 
    } 
    if(text == "Blue"){ 
     tv.setTextColor(Color.BLUE); 
    } 
    if(text == "Green"){ 
     tv.setTextColor(Color.GREEN); 
    } 
}' 


'<TextView 
    android:textColor="#000000" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/message" /> 

<Spinner 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:entries="@array/colours" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="16dp" 
    android:id="@+id/spinner" /> 

<Button 
    android:text="HOME" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/button" 
    android:onClick="home" 
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginBottom="52dp" /> 

<Button 
    android:text="changeColour" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/button4" 
    android:layout_above="@+id/button" 
    android:layout_alignStart="@+id/button" 
    android:layout_marginBottom="101dp" 
    android:onClick="change" />' 

Répondre

0

réponse serait

if(text.equals("Red")) etc

parce qu'un texte est un objet de type String est pas un type primitif

type primitif peut être comparé en utilisant == mais pas un type de référence