2016-07-21 10 views
0

Ich möchte die Farbe des ausgewählten Textes in Spinner ändern. Gibt es da trotzdem kann ich die Grenzen auch auf weiß ändern. gleiches Problem mit der Nummer Picker mag ich Farbe der Zahlen erscheinen weiß entweder ausgewählt oder nicht, weil die gesamten Text in meinem Projekt weiß istWie kann ich die Farbe des ausgewählten Artikels in Number Picker und Spinner ändern

package myfyp.pkg.futureadvisor; 

    import java.util.ArrayList; 
    import java.util.List; 
    import android.app.Activity; 
    import android.content.Intent; 
    import android.os.Bundle; 
    import android.view.Menu; 
    import android.view.MenuItem; 
    import android.view.View; 
    import android.widget.ArrayAdapter; 
    import android.widget.Button; 
    import android.widget.EditText; 
    import android.widget.NumberPicker; 
    import android.widget.Spinner; 
    import android.widget.TextView; 
    public class Enter_Info_Activity extends Activity { 
      TextView t1,t2,t3; 
      EditText e1,e2; 
      Button b1; 
      private Spinner spinner2; 
     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.enterinfor); 
      t1=(TextView) findViewById(R.id.textView1); 
      t2=(TextView) findViewById(R.id.programe); 
      e1=(EditText) findViewById(R.id.editText1); 
      t3=(TextView) findViewById(R.id.percentage); 
      addItemsOnSpinner2(); 
      NumberPicker np = (NumberPicker) findViewById(R.id.np); 
      np.setMinValue(0); 
      //Specify the maximum value/number of NumberPicker 
      np.setMaxValue(100); 
      //Gets whether the selector wheel wraps when reaching the min/max value. 
      np.setWrapSelectorWheel(true); 

      //Set a value change listener for NumberPicker 


      b1 = (Button) findViewById(R.id.search); 
      b1.setOnClickListener(new View.OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        // TODO Auto-generated method stub 
        Intent intenet=new Intent(v.getContext(),List_item.class); 
        startActivityForResult(intenet,0); 
       } 
      }); 



     } 
     public void addItemsOnSpinner2() { 

       spinner2 = (Spinner) findViewById(R.id.spinner2); 
       List<String> list = new ArrayList<String>(); 
       list.add("Bachelor of Architecture"); 
       list.add("Bachelor of Business Administration"); 
       list.add("Bachelor of Commerce"); 
       list.add("Bachelor of Computer Information Systems"); 
       list.add("Bachelor of Science in Construction Technology"); 
       list.add("Bachelor of Criminal Justice"); 
       list.add("Bachelor of Economics"); 
       list.add("Bachelor of Education"); 
       list.add("Bachelor of Engineering"); 
       list.add("Bachelor of Fine Arts"); 
       list.add("Bachelor of Information Systems"); 
       list.add("Bachelor of Social Work"); 
       list.add("Bachelor of Technology"); 
       list.add("Bachelor of Accountancy"); 
       list.add("Bachelor of Science in Aerospace Engineering"); 
       list.add("Bachelor of Science in Architecture"); 
       list.add("Bachelor of Science in Architectural Engineering"); 
       list.add("Bachelor of Science in Business Administration"); 
       list.add("Bachelor of Science in Business and Technology"); 
       list.add("Bachelor of Science in Chemical Engineering"); 
       list.add("Bachelor of Science in Chemistry"); 
       list.add("Bachelor of Science in Civil Engineering"); 
       list.add("Bachelor of Science in Computer Engineering"); 
       list.add("Bachelor of Science in Computer Science"); 
       list.add("Bachelor of Science in Criminal Justice"); 
       list.add("Bachelor of Science in Electrical Engineering"); 
       list.add("Bachelor of Science in Engineering Technology"); 
       list.add("Bachelor of Science in English Literature"); 
       list.add("Bachelor of Science in Environmental Science"); 
       list.add("Bachelor of Science in History"); 
       list.add("Bachelor of Science in Human Resources Management"); 
       list.add("Bachelor of Science in Industrial Engineering"); 
       list.add("Bachelor of Science in Information Technology"); 
       list.add("Bachelor of Science in Information Systems"); 
       list.add("Bachelor of Science in Information Systems"); 
       list.add("Bachelor of Science in Integrated Science"); 
       list.add("Bachelor of Science in Integrated Science"); 
       list.add("Bachelor of Science in International Relations"); 
       list.add("Bachelor of Science in Journalism"); 
       list.add("Bachelor of Science in Manufacturing Engineering"); 
       list.add("Bachelor of Science in Marketing"); 
       list.add("Bachelor of Science in Mathematics"); 
       list.add("Bachelor of Science in Mechanical Engineering"); 
       list.add("Bachelor of Science in Mining Engineering"); 
       list.add("Bachelor of Science in Software Engineering"); 
       list.add("Bachelor of Science in Physics"); 
       list.add("Bachelor of Science in Politics"); 
       list.add("Bachelor of Science in Psychology"); 
       list.add("Bachelor of Science in Real-Time Interactive Simulation"); 
       list.add("Bachelor of Science in Religion"); 
       list.add("Bachelor of Science in Risk Management and Insurance"); 
       list.add("Bachelor of Science in Science Education"); 
       list.add("Bachelor of Science in Systems Engineering"); 
       list.add("Bachelor of Science in Veterinary Technology"); 

       ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, 
        android.R.layout.simple_spinner_item, list); 
       dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
       spinner2.setAdapter(dataAdapter); 
       } 



     @Override 
     public boolean onCreateOptionsMenu(Menu menu) { 
      // Inflate the menu; this adds items to the action bar if it is present. 
      getMenuInflater().inflate(R.menu.main_activity1, menu); 

      return true; 
     } 

     @Override 
     public boolean onOptionsItemSelected(MenuItem item) { 
      // Handle action bar item clicks here. The action bar will 
      // automatically handle clicks on the Home/Up button, so long 
      // as you specify a parent activity in AndroidManifest.xml. 
      int id = item.getItemId(); 
      if (id == R.id.aboutusid) { 
       Intent aboutusintent = new Intent(this,Aboutus_Activity.class); 
       startActivity(aboutusintent); 
       return true; 
      } 
      else if (id == R.id.helpid) { 
       Intent helpIntent = new Intent(this,Help_Activity.class); 
       startActivity(helpIntent); 
       return true; 
      } 
      else if (id == R.id.homeid) { 
       Intent mainIntent = new Intent(this,MainActivity.class); 
       startActivity(mainIntent); 
       return true;} 
      else if (id == R.id.exitid) { 

       finish(); 
       System.exit(0); 

      } 

      else if (id == R.id.exitid) { 

       return false; 
      } 
      return super.onOptionsItemSelected(item); 
     } 
    } 

Antwort

1

Sie können dies mit einem ColorStateList für Ihre Adapter im Layout tun. Sie können, wie so eine ColorStateList unter Verwendung von XML in Ihre color Ressourcenordner erstellen:

<?xml version "1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android/com/apk/res/android"> 
    <item android:state_checked="true" android:color="?attr/colorAccent"/> 
    <item android:state_selected="true" android:color="?attr/colorAccent"/> 
    <item android:state_pressed="true" android:color="?attr/colorAccent"/> 
    <item android:state_activated="true" android:color="?attr/colorAccent"/> 
    <item android:color="?android:attr/textColorPrimary"/> 
</selector> 

Dann sind Sie ein Layout erstellen können mit Hilfe der ColorStateList (ich benutze es hier für die Textfarbe, aber Sie beliebige Attribute festlegen können, verwenden können eine Farbressource):

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" android:layout_height="wrap_content" 
    android:padding="16dp" android:textSize="16sp" 
    android:textColor="@color/selector_accent"/> 

Schließlich setzt dieses Layout als Drop-Down-Ansicht Ressource:

dataAdapter.setDropDownViewResource(R.layout.view_selectable); 

Wie für die NumberPicker, es sieht nicht so aus, als gäbe es eine Standardmethode zum Festlegen des Layouts, aber Sie sollten in der Lage sein, die Farbe des Textes basierend auf this answer zu ändern. Dann setzen Sie einfach die Textfarbe mit Ihrem ColorStateList:

editText.setTextColor(ContextCompat.getColorStateList(this, R.color.selector_accent)); 
+0

zum Beispiel Sie haben 30 Artikel in der Listenansicht dann if (this) zeigen 1,4,5,6,30 Artikel elseif (this) show 10 28 17 45 artikel ............. wenn ja dann wie – misbah

+0

@misbah Das sieht wie eine ganz andere Frage aus. Die oben erwähnte Frage ist nur, wie man die Farbe des Textes in einem Spinner und/oder einem Zahlenwähler ändert, was ich glaube, dass ich geantwortet habe. Was Sie jetzt fragen, scheint so zu sein, als ob Sie einen Filter auf Ihre Listenansicht basierend auf dem angeklickten Drehfeldelement anwenden möchten. Wie auch immer, wenn du eine neue Frage stellst, poste eine neue Frage. Link hier in einem neuen Kommentar, und ich werde es mir ansehen. – Bryan

+0

Entschuldigung, ich bin neu auf dieser Seite auch, aber das ist der Link – misbah

Verwandte Themen