2016-08-05 11 views
0

こんにちは私はアンドロイドのアマチュアです。スピナーのアイテムにイメージを追加したいと思います。残念ながら、私はそれを行う方法を知らない。 以下は私のXMLファイルとMainActivityです。 読んでいただきありがとうございます。アイテムにイメージを追加(スピナー)

XMLファイル

<resources> 
    <string-array name="walutyarrajwoskie"> 
    <item>ALL</item> 
    <item>AMD</item> 
    <item>AZN</item> 
    <item>BYR</item> 
    <item>BAM</item> 
    <item>BGN</item> 
    </string-array> 
    </resources> 

MAINACTIVITY

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 


    editText_waluty= (EditText) findViewById(R.id.editText_waluty); 
    spinner_from =(Spinner) findViewById(R.id.spinner_from); 
    spinner_to =(Spinner) findViewById(R.id.spinner2_to); 
    textview_to= (TextView) findViewById(R.id.textView2_to); 
    button_konwertuj= (Button) findViewById(R.id.button_konwertuj); 






    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, 
      R.array.**walutyarrajwoskie**, android.R.layout.simple_spinner_item); 

    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 


    spinner_from.setAdapter(adapter); 
    spinner_to.setAdapter(adapter); 
+0

あなたはあなた自身のクストを定義する必要がありますmアダプタ。これについてのチュートリアルがたくさんあります。ここに例があります:https://github.com/dlukashev/android-phone-number-with-flags – Amir

+0

助けてくれてありがとうAmir –

答えて

1

使用カスタムスピナー

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity"> 

    <Spinner 
     android:id="@+id/simpleSpinner" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="50dp" /> 

</RelativeLayout> 
activity_main


custom_spinner_items.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal"> 

    <ImageView 
     android:id="@+id/imageView" 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:padding="5dp" 
     android:src="@drawable/ic_launcher" /><!--Make sure image is present in Drawable folder--> 

    <TextView 
     android:id="@+id/textView" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:padding="@dimen/activity_horizontal_margin" 
     android:text="Demo" 
     android:textColor="#000" /> 
</LinearLayout> 

MainActivity.java

package example.abhiandriod.customspinnerexample; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.Spinner; 
import android.widget.Toast; 

public class MainActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener{ 


    String[] countryNames={"India","China","Australia","Portugle","America","New Zealand"}; 
    int flags[] = {R.drawable.india, R.drawable.china, R.drawable.australia, R.drawable.portugle, R.drawable.america, R.drawable.new_zealand}; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     //Getting the instance of Spinner and applying OnItemSelectedListener on it 
     Spinner spin = (Spinner) findViewById(R.id.simpleSpinner); 
     spin.setOnItemSelectedListener(this); 

     CustomAdapter customAdapter=new CustomAdapter(getApplicationContext(),flags,countryNames); 
     spin.setAdapter(customAdapter); 
    } 


    //Performing action onItemSelected and onNothing selected 
    @Override 
    public void onItemSelected(AdapterView<?> arg0, View arg1, int position,long id) { 
     Toast.makeText(getApplicationContext(), countryNames[position], Toast.LENGTH_LONG).show(); 
    } 

    @Override 
    public void onNothingSelected(AdapterView<?> arg0) { 
     // TODO Auto-generated method stub 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.menu_main, 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(); 

     //noinspection SimplifiableIfStatement 
     if (id == R.id.action_settings) { 
      return true; 
     } 

     return super.onOptionsItemSelected(item); 
    } 
} 

CustomAdapter.java

package example.abhiandriod.customspinnerexample; 

import android.content.Context; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.BaseAdapter; 
import android.widget.ImageView; 
import android.widget.TextView; 

public class CustomAdapter extends BaseAdapter { 
    Context context; 
    int flags[]; 
    String[] countryNames; 
    LayoutInflater inflter; 

    public CustomAdapter(Context applicationContext, int[] flags, String[] countryNames) { 
     this.context = applicationContext; 
     this.flags = flags; 
     this.countryNames = countryNames; 
     inflter = (LayoutInflater.from(applicationContext)); 
    } 

    @Override 
    public int getCount() { 
     return flags.length; 
    } 

    @Override 
    public Object getItem(int i) { 
     return null; 
    } 

    @Override 
    public long getItemId(int i) { 
     return 0; 
    } 

    @Override 
    public View getView(int i, View view, ViewGroup viewGroup) { 
     view = inflter.inflate(R.layout.custom_spinner_items, null); 
     ImageView icon = (ImageView) view.findViewById(R.id.imageView); 
     TextView names = (TextView) view.findViewById(R.id.textView); 
     icon.setImageResource(flags[i]); 
     names.setText(countryNames[i]); 
     return view; 
    } 
} 

Source from this website

関連する問題