sendData()
我的片段中有一个方法。此方法启动一个新的活动。我想从我的调用此方法ArrayAdapter
。
这是我的代码:
HomeFragment.java
stagAdaper = new StaggeredAdapter(myContext, android.R.layout.simple_list_item_1, getList);
mGridView.setAdapter(stagAdaper);
private void sendData(int position)
{
myDialog = new ProgressDialog(myContext).show(getActivity(), "Fetching news..", "Just a moment");
myDialog.getWindow().setContentView(R.layout.openarticlewaitprogress);
myDialog.getWindow().setTitle("Loading..");
myDialog.getWindow().setLayout(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
new NewsDetails(myDialog);
Intent nIntent = new Intent(getActivity(),Details.class);
String Body=getList.get(position).getBody();
newsIntent.putExtra("Body", Body);
startActivity(nIntent);
}
StaggeredAdapter.java
viewHolder.layGridLayout.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
//viewHolder.layGridLayout.setForeground(R.drawable.foreground_selector);
}
});
return convertView;
}
我该怎么做?
编辑: 这是我现在要使用的。下面提供了较旧的“更轻松”的解决方案。
MyFragment extends Fragment implements CustomAdapter.EventListener {
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
CustomAdapter adapter = new CustomAdapter(..., this);
}
void onEvent(int data) {
doSomething(data);
}
}
CustomAdapter extends BaseAdapter {
EventListener listener;
public interface EventListener {
void onEvent(int data);
}
public CustomAdapter(..., EventListener listener) {
this.listener = listener;
}
...
}
现在,可以从适配器中的任何位置调用listener.onEvent(data);
该片段中的方法。
而且,除了通过构造函数提供侦听器之外,我们还可以在适配器中添加另一个方法,例如registerListener(EventListener eventListener)
,然后在需要时维护侦听器列表。
旧答案:
解决方案1:将适配器设为片段的内部类,以便可以直接调用该方法。
解决方案2:更新您的适配器构造函数以接受Fragment作为参数。
就像是 :
customAdapter = new CustomAdapter(myContext, android.R.layout.simple_list_item_1, getList, HomeFragment.this);
并更新Adapter的构造函数:
public CustomAdapter(Context context, int id, HomeFragment fragment) {
this.fragment = fragment;
}
然后您可以使用fragment变量调用方法。
fragment.doSomething();
但问题是我想知道如何从类中的片段调用方法?这是我的代码 下面是在活动中工作但在片段中不工作的代码
问题内容: 所以我有一个自定义的listview。就像Instagram布局一样,每个列表项中都有1张图片和一堆按钮。所以这是问题所在: 我要实现共享按钮。为此,我尝试创建一个从适配器到活动的回调。但这似乎没有用。这是我到目前为止的内容(我裁剪了不相关的部分): 主要活动 列表适配器 错误日志: 问题答案: 您需要告诉适配器使用哪个OnShareClickedListener()实现。现在,在您的
问题内容: 我有一个风俗习惯。此行中的每一行都有一个图标和一些文本。这些图标在后台下载,缓存并使用回调(分别替换为)进行下载。每次getView()运行都会触发从缓存或下载中获取缩略图的逻辑。 现在,根据Romain Guy所说: “绝对不能保证的调用顺序和次数。 我已经看到这种情况的发生,因为大小为2的一行getView()被调用了6次! 如何更改代码以避免重复的缩略图获取请求并处理视图回收?
这是我在GridView中显示图像和文本的活动。 我将在此的其他活动中使用Intent。 使用setAdapter方法出错。 下面是我的适配器。 这是我的适配器我不知道哪里出了问题。 启动此活动时,我的应用程序崩溃。
在我的主要活动中,我有三个循环利用的观点。 其中一个在底部工作表中,它是主要的(默认情况下,底部工作表是打开以显示这个),在其适配器的onbind方法中,我做了一个onClickListener,以便当用户单击其中的项目时,我想要, 我想回到主活动类来设置To Start一个方法,它的滚动是关闭底表并为下一个回收视图设置数据(当底表关闭时会出现) ......这里的问题是如何从onBind方法的L
我很难用简单的游标适配器从sqlite数据库填充微调器。我必须使用一个简单的游标适配器,而不是数组适配器。我的主要活动、函数和xml文件如下: 功能如下: xml文件在下面; 当我运行应用程序时,将显示以下屏幕。有数据,但似乎是空的。我有_ id,列的名称。 空微调器 谢谢你的帮助。