2017-01-14 1 views
1

는 I은 Name.java로부터 MainActivity.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

무시 toStringName.java 내부 방법 name를 반환한다.

public class Name { 

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

이렇게하면 Spinner에 항목을 표시하는 데 도움이됩니다.

ArrayList에 항목을 추가해야합니다. 현재 ArrayList에 항목을 하나만 추가하고 있습니다.

... 
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

이제 제대로 작동합니다. 하지만 스피너에 "젖소"만 표시합니까? –

관련 문제