您好,我是android的新手,我有一个看似很简单的问题,但我只是想了解我在网上找到的这段代码
使用Activity paramActivity是指Activity上下文,为什么不使用activity .this?
承包商适配器是否可能包含超级适配器中缺少的值?
public class myAdapter
extends ArrayAdapter<String>
{
private final Activity context;
private final String[] subtitleId;
private final String[] titleId;
public myAdapter(Activity paramActivity, String[] paramArrayOfString1,
String[] paramArrayOfString2)
{
super(paramActivity, 2745458745 , paramArrayOfString1);
this.context = paramActivity;
this.titleId = paramArrayOfString1;
this.subtitleId = paramArrayOfString2;
}
public View getView(int paramInt, View paramView, ViewGroup
paramViewGroup)
{
View localView = this.context.getLayoutInflater().inflate(2745458745,
null, true);
TextView localTextView1 = (TextView)localView.findViewById(2131296514);
TextView localTextView2 = (TextView)localView.findViewById(2131296502);
localTextView1.setText(this.titleId[paramInt]);
localTextView2.setText(this.subtitleId[paramInt]);
return localView;
}
}
答案 0 :(得分:0)
通过使用Activity paramActivity指的是Activity上下文
假设您正在传递扩展AppCompatActivity
作为参数的活动...
YourActivity扩展AppCompatActivity
,扩展FragmentActivity
,扩展BaseFragmentActivityApi16
,扩展BaseFragmentActivityApi14
,扩展SupportActivity
,扩展Activity
,扩展{{ 1}}扩展了ContextThemeWrapper
,您将发现扩展了ContextWrapper
。
这听起来可能太多了,但是请放心,您可以从这里获得的是可以将Context
转换为Activity
。
为什么不使用活动。这
要使用Activity.this,您必须让Activity的类包含您要编写该语句的字段,因为Context
引用了该类的当前实例。
为清楚起见,您应该在Java中查找this
关键字。
答案 1 :(得分:0)
是的,您可以使用Activity.this
,因为适配器需要上下文和下面发布的超级构造函数示例。
在ArrayAdapter中,您需要定义arrayList以及textview来显示arrylist项目。
public ArrayPopupAdapter(Context context, int textViewResourceId, ArrayList<String> mItems) {
super(context, textViewResourceId, mItems);
this.mContext = context;
}