2 가지 종류의 BuyCoins 및 CustomOnItemSelectListerner가 있습니다. BuyCoins 클래스에는 회 전자가 포함되어 있고 회 전자가 선택되면 CustomOnItemSelectListerner 클래스가 호출됩니다.텍스트보기에 null이 반환됩니다.
public class BuyCoins extends AppCompatActivity {
...
public void addListenerOnSpinnerItemSelection() {
spinner1 = (Spinner) findViewById(R.id.spinner1);
//TextView t=(TextView) findViewById(R.id.conversion);
spinner1.setOnItemSelectedListener(new CustomOnItemSelectedListener(t));
}
...
}
public class CustomOnItemSelectedListener implements OnItemSelectedListener {
//private TextView t;
//CustomerOnItemSelected (TextView V) {t=V;}
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
String selected= parent.getItemAtPosition(pos).toString();
TextView t=(TextView)parent.findViewById(R.id.conversion);
switch(selected) {
case "A":
Toast.makeText(parent.getContext(),
"OnItemSelectedListener : " + selected,
Toast.LENGTH_SHORT).show();
t.setText("$ala$");
break;
}
...
}
제 문제는 t.setText가 null을 반환한다는 것입니다. 그러나 나머지 case 문은 정상적으로 작동합니다. 도와주세요. 스피너와
레이아웃 파일
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="50dp"
android:paddingTop="50dp"
android:paddingRight="50dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Purchase Coins"
android:id="@+id/textView"
android:layout_gravity="center_horizontal" />
<ImageView
android:layout_width="match_parent"
android:layout_height="100dp"
android:id="@+id/coinpic"
android:src="@drawable/coin"
android:scaleX="0.8"
android:scaleY="0.8"
android:layout_gravity="center_horizontal" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Spinner
android:id="@+id/spinner1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:entries="@array/coin_array"
android:prompt="@string/coin_prompt" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text=""
android:id="@+id/conversion"
android:layout_gravity="right" />
</LinearLayout>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Purchase Coins"
android:id="@+id/Pur_button"
android:layout_gravity="center_horizontal"
android:onClick="toast"/>
</LinearLayout>
감사 : 당신의 Acticity에서 리스너를 만들 때
그런 다음 텍스트 뷰에 전달하는 새로운 생성자를 호출 . –
xml 레이아웃을 공유하십시오. – pooyan
ID "변환"뷰를 정의한 xml을 붙여 넣을 수 있습니까? 그게 주문 제작품입니까? –