gpt4 book ai didi

Android LayoutInflater 问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:57:07 27 4
gpt4 key购买 nike

这是我的类 DownloadableProjectsFromWebAdapter 的 getView 方法:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
DownloadableProjectsFromWebHolder holder = null;

if(row == null)
{
LayoutInflater inflater = ((Activity)context).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent, false);

holder = new DownloadableProjectsFromWebHolder();
holder.txtPid = (TextView)row.findViewById(R.id.tvAllProjectsPid);
holder.txtName = (TextView)row.findViewById(R.id.tvAllProjectsName);
holder.txtShareable = (TextView)row.findViewById(R.id.tvAllProjectsShareable);

row.setTag(holder);
}
else
{
holder = (DownloadableProjectsFromWebHolder)row.getTag();
}

String share_text;
AllProjectListInfo li = data.get(position);
holder.txtPid.setText("ID: " + Integer.toString(li.getId()));
holder.txtName.setText(li.getName());
if (li.getShareable()){
share_text = "Public Project";
} else {
share_text = "Private Project";
}
holder.txtShareable.setText(share_text);

return row;
}

导致问题的线路:

35:    LayoutInflater inflater = ((Activity)context).getLayoutInflater();
36: row = inflater.inflate(layoutResourceId, parent, false);

这是来自 LogCat 的信息:

FATAL EXCEPTION: main
java.lang.ClassCastException: android.app.ContextImpl cannot be cast to android.app.Activity
at com.ericbrian.tnc.ConProForAndroid.DownloadableProjectsFromWebAdapter.getView(DownloadableProjectsFromWebAdapter.java:36)
at android.widget.AbsListView.obtainView(AbsListView.java:2033)
at android.widget.ListView.makeAndAddView(ListView.java:1772)
at android.widget.ListView.fillDown(ListView.java:672)
at android.widget.ListView.fillFromTop(ListView.java:732)
at android.widget.ListView.layoutChildren(ListView.java:1625)
at android.widget.AbsListView.onLayout(AbsListView.java:1863)
at android.view.View.layout(View.java:11278)
at android.view.ViewGroup.layout(ViewGroup.java:4224)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1628)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1486)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1399)
at android.view.View.layout(View.java:11278)
at android.view.ViewGroup.layout(ViewGroup.java:4224)
at android.widget.FrameLayout.onLayout(FrameLayout.java:431)
at android.view.View.layout(View.java:11278)
at android.view.ViewGroup.layout(ViewGroup.java:4224)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1628)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1486)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1399)
at android.view.View.layout(View.java:11278)
at android.view.ViewGroup.layout(ViewGroup.java:4224)
at android.widget.FrameLayout.onLayout(FrameLayout.java:431)
at android.view.View.layout(View.java:11278)
at android.view.ViewGroup.layout(ViewGroup.java:4224)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1489)
at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2442)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)

这里调用适配器:

DownloadableProjectsFromWebAdapter adapter = 
new DownloadableProjectsFromWebAdapter(
getBaseContext(),
R.layout.all_projects_listview_item,
results);

最后,结果定义:

List<AllProjectListInfo> results

现在,我从另一个使用自定义适配器的地方复制了这段代码。但是,那个工作得很好。我不明白为什么这个没有。

感谢任何帮助。

谢谢。

最佳答案

而不是这个(这大部分是错误的):

LayoutInflater inflater = ((Activity)context).getLayoutInflater();

这样做:

LayoutInflater inflater = LayoutInflater.from(context);

关于Android LayoutInflater 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10905777/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com