2017-01-14 4 views
1

は私がName.javaにMainActivity.javaから値を渡すとName.javaから値にアクセスしたいとスピナーでそれを表示したいです。別のクラスのスピナーに値を表示するにはどうすればいいですか?

これを行うにはどうすればよいですか?また、スピナーから値を選択する際に名前を書きたいと思っています。これで私を助けてください。

ありがとうございます。

Name.java内部Name.Java

public class Name { 

    private String name; 

    public Name(){ 

    } 

    public Name(String name) { 
     this.name = name; 
    } 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 
} 

MainActivity.Java

public class MainActivity extends AppCompatActivity { 

    ArrayList<Name> names = new ArrayList<>(); 
    Name name = new Name(); 

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

     names = new ArrayList<>(); 

     Name name = new Name(); 
     name.setName("dog"); 
     name.setName("cat"); 
     name.setName("cow"); 

     names.add(name); 

     Spinner spinner = (Spinner) findViewById(R.id.spinner); 

     spinner.setAdapter(new ArrayAdapter<Name>(this, android.R.layout.simple_spinner_dropdown_item, names)); 

     spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
      @Override 
      public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
       Name value = (Name) parent.getItemAtPosition(position); 
       Toast.makeText(MainActivity.this, "value is "+value, Toast.LENGTH_SHORT).show(); 
      } 

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

      } 
     }); 

    } 
} 
+1

問題点は何ですか? –

+0

このコードではスピナーに値が表示されません。 –

+0

文字列の代わりにスピナーに表示される値のタイプとして "名前"を使用していたと思います。 –

答えて

0

オーバーライドtoString方法及びnameを返します。

public class Name { 

    ... 
    @Override 
    public String toString(){ 
     return name; 
    } 
} 

これは、Spinnerの項目を表示するのに役立ちます。

ArrayListに商品を追加する必要があります。現在、ArrayListには1つのアイテムしか追加されていません。

... 
names = new ArrayList<>(); 

names.add(new Name("dog")); 
names.add(new Name("cat")); 
names.add(new Name("cow")); 

Spinner spinner = (Spinner) findViewById(R.id.spinner); 
... 
+0

mainactivityでこれをtoString()と呼びますか? –

+0

あなたはそうする必要はありません。 –

+0

は現在正常に動作しています!スピナーには「牛」だけが表示されますか? –

関連する問題