【发布时间】:2019-01-09 08:44:57
【问题描述】:
我在我的activity4.java中工作,代码是:
public class Activity4 extends Activity {
Spinner spinner;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_4);
spinner=findViewById(R.id.spinner);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
if(Activity4.this==adapterView.getContext())
Toast.makeText(adapterView.getContext(),adapterView.getSelectedItem().toString(),Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
}
}
我在上面的代码中使用了 adapterView.getContext() 作为上下文。但即使我用 getApplicationContext() 替换它
Toast.makeText(getApplicationContext(),adapterView.getSelectedItem().toString(),Toast.LENGTH_LONG).show();
或者如果我这样写 getBaseContext(),
Toast.makeText(getBaseContext(),adapterView.getSelectedItem().toString(),Toast.LENGTH_LONG).show();
吐司似乎很好用。为什么会这样?
【问题讨论】:
-
为什么要使用adapterView.getContext()?你会做 MainActivity.this
标签: android