我想根據點擊的微調器更改字體大小。每次單擊下拉列表微調器時,它都會將我帶到 java.lang.NullPointerException。干得好:我的Android應用活動public class MyAndroidAppActivity extends AppCompatActivity {private Spinner spinner1, spinnerLatin;@Overridepublic void onCreate(Bundle savedInstanceState) {? ? super.onCreate(savedInstanceState);? ? setContentView(R.layout.main);? ? // toolbar? ? Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);? ? setSupportActionBar(toolbar);? ? //this line shows back button? ? getSupportActionBar().setDisplayHomeAsUpEnabled(true);? ? //Display data? ? Spinner spinnerBackgroundChange = (Spinner)findViewById(R.id.spinner1);? ? ArrayAdapter<CharSequence> spinnerArrayAdapter = ArrayAdapter.createFromResource(this, R.array.country_arrays, android.R.layout.simple_spinner_item);? ? spinnerArrayAdapter.setDropDownViewResource(R.layout.textview_with_background);? ? spinnerBackgroundChange.setAdapter(spinnerArrayAdapter);? ? addListenerOnSpinnerItemSelection();? ? addListenerOnSpinner2ItemSelection();}public void addListenerOnSpinnerItemSelection() {? ? spinner1 = (Spinner) findViewById(R.id.spinner1);? ? spinner1.setOnItemSelectedListener(new SelectedListener());}public void addListenerOnSpinner2ItemSelection() {? ? spinnerLatin = (Spinner) findViewById(R.id.spinnerLatin);? ? spinnerLatin.setOnItemSelectedListener(new SelectedLatin());}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {? ? switch (item.getItemId()) {? ? ? ? case android.R.id.home:? ? ? ? ? ? this.finish();? ? ? ? ? ? return true;? ? }? ? return super.onOptionsItemSelected(item);} }
1 回答

鴻蒙傳說
TA貢獻1865條經驗 獲得超7個贊
在您的聽眾中,這些臺詞幾乎肯定是錯誤的:
TextView dgs = (TextView) view.findViewById(R.id.sizedoa);
TextView dgf = (TextView) view.findViewById(R.id.fontLatin);
view傳遞給此方法的參數是被單擊的微調器內部的視圖,這意味著調用view.findViewById()只會查看微調器本身(的一部分)內部。大概這些視圖在您的 Fragment 或 Activity 的布局中,而不是在微調器內。
您如何解決此問題將取決于您的應用程序是如何連接在一起的,但一種潛在的可能性是將AdapterView的上下文轉換為Activity,然后在其中找到視圖:
Activity activity = (Activity) parent.getContext();
TextView dgs = activity.findViewById(R.id.sizedoa);
添加回答
舉報
0/150
提交
取消