一般情况下,我们要获得一个类的上下文,仅仅只需要用关键字this即可,此类型既是Context类,也是外部类。
public class MainActivity extends Activity {
private ListView mainListView;
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//布局文件
setContentView(R.layout.main_activity);
//获取控件
mainListView = (ListView) findViewById(R.id.main_list);
//适配器
mainListView.setAdapter(new PlacesAdapter(this));
//列表项点击处理
mainListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
showPhoto(position);
}
});
}
}而如果想在内部类中获得上下文Context类(如在线程new Runnable(){}中),可以使用外部类.this获得,如:
public class MainActivity extends Activity {
/**
* 在主线程显示天气
* @param weather
*/
private void showWeatherOnUiThread(final Weather weather) {
runOnUiThread(new Runnable() {
@Override
public void run() {
//显示
mainListView = (ListView) findViewById(R.id.main_listView);
mainListView.setAdapter(new WeatherAdapter(MainActivity.this));
}
});
}
}

6761

被折叠的 条评论
为什么被折叠?



