- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在我的应用程序中,我需要启动 RecyclerAdapter.class 并等待结果,但我无法编写行 setResult 并完成:
public static class MyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
TextView title;
ImageView icon;
public MyViewHolder(View itemView) {
super(itemView);
title = (TextView) itemView.findViewById(R.id.list_title);
icon = (ImageView) itemView.findViewById(R.id.list_item);
icon.setOnClickListener(this);
}
@Override
public void onClick(View v) {
String selectedCountry;
int country = getPosition();
String ololo = Integer.toString(country);
Log.i("WORKS" ,"Выюрана страна под номером" +ololo);
switch (getPosition()) {
case 0:
selectedCountry = "ukr";
Log.i ("1" ,"" +selectedCountry);
Intent intent= new Intent();
intent.putExtra("country", selectedCountry);
break;
case 1:
selectedCountry = "by";
Log.i ("1" ,"" +selectedCountry);
break;
case 2:
selectedCountry = "rus";
Log.i ("1" ,"" +selectedCountry);
break;
case 3:
selectedCountry = "nrus";
Log.i ("1" ,"" +selectedCountry);
break;
}
//intent. putExtra("country")
}
}
我需要怎么写?请帮助我并解释我做错了什么我需要从所有案例中设置结果
编辑:
public class RecyclerAdapterChooseCountry extends RecyclerView.Adapter<RecyclerAdapterChooseCountry.MyViewHolder> {
private LayoutInflater inflater;
List<CountryInformation> data = Collections.emptyList();
public RecyclerAdapterChooseCountry(Context context, List<CountryInformation> data) {
inflater = LayoutInflater.from(context);
this.data = data;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = inflater.inflate(R.layout.country_list, parent, false);
MyViewHolder holder = new MyViewHolder(view, mActivity /*<- cant add this*/ );
return holder;
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
CountryInformation information = data.get(position);
holder.title.setText(information.title);
holder.icon.setImageResource(information.iconId);
}
@Override
public int getItemCount() {
return data.size();
}
public static class MyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
TextView title;
ImageView icon;
private Activity mActivity;
public MyViewHolder(View itemView, Activity mActivity ) {
super(itemView);
title = (TextView) itemView.findViewById(R.id.list_title);
icon = (ImageView) itemView.findViewById(R.id.list_item);
icon.setOnClickListener(this);
this.mActivity = mActivity;
}
@Override
public void onClick(View v) {
String selectedCountry;
int country = getPosition();
String ololo = Integer.toString(country);
Log.i("WORKS", "Выюрана страна под номером" + ololo);
switch (getPosition()) {
case 0:
selectedCountry = "ukr";
Log.i("1", "" + selectedCountry);
Intent intent = new Intent();
intent.putExtra("country", selectedCountry);
mActivity.setResult(mActivity.RESULT_OK, intent);
mActivity.finish();
break;
case 1:
selectedCountry = "by";
Log.i("1", "" + selectedCountry);
break;
case 2:
selectedCountry = "rus";
Log.i("1", "" + selectedCountry);
break;
case 3:
selectedCountry = "nrus";
Log.i("1", "" + selectedCountry);
break;
}
}
}
最佳答案
Can't set method setResult in RecyclerAdapter
setResult
在 MyViewHolder
类中不可访问,因为 setResult在 Activity 类中定义
为了从非 Activity 类访问 setResult
,在创建 Adapter 对象时在 Adapter 构造函数中传递 Activity 上下文:
private Activity mActivity;
public MyViewHolder(View itemView,Activity mActivity) {
super(itemView);
/...your code here..
this.mActivity=mActivity;
}
使用 mActivity
访问 Button onClick 中的 setResult
关于android - 无法在 RecyclerAdapter 中设置方法 setResult,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28560722/
在我的应用程序中,我在 list 文件中定义了 2 个 Activity ,如下所示: 在 MainActivity 中,我有 4 个 fragment 。在一个 fragment 中,我使用以下
使用 TaskCompletionSource.SetResult() 将在一个线程上创建的非线程安全对象传递给另一个线程是否安全? 例如在这个人为的例子中: using System; using
请注意:这里是 qt/c++ 新手 目的: 我有一个 QDialog,我想从中返回一个结果。我知道 QDialog::exec() 与 setResult 结合,导致使用 Accept() 或 Rej
这个问题在这里已经有了答案: Sending data back to the Main Activity in Android (13 个答案) 关闭 9 年前。 我创建了一个文件资源管理器和一个
我试图在我的“注册”按钮上设置结果,但没有任何反应: 登录 Activity : 为结果开始 Activity : Intent intent = RegisterActivity_.intent(t
我正在开发一个涉及两个 Activity 的测验应用程序:一个显示 Question 列表的 QuizActivity 和一个 QuestionActivity显示问题的详细信息(提示、选项等)。在
我已经使用 startActivityForResult 从父 Activity 开始了一个子 Activity 。在子 Activity 中执行所需的功能后,我使用 setResult 设置结果。但
我正在我的 Android 应用程序中实现 DeepLinking。假设我正在使用 PhonePe 付款并选择使用其他应用程序付款并选择我的应用程序。 Intent intent = new Inte
场景:我有一个 MainActivity.java、OtherPageForFragments.java 和一个位于 OtherPageForFragments.java 上的 fragment 在
我发现 TaskCompletionSource.SetResult(); 在返回之前调用等待任务的代码。就我而言,这会导致死锁。 这是在普通Thread中启动的简化版本 void ReceiverR
我有一个 Activity 保存 fragment (MainActivity.java) 在里面, fragment (ItemFragment.java) 有显示一些项目的 recyclervie
单击任何列表项时,我必须使用 setResult 转到父 Activity 。 list.setOnClickListener(new OnClickListener() {
我发起了一个电话 Activity 请求结果: Intent intentcall = new Intent(); intentcall.setAction(Intent.ACTION_CAL
我正在为 Android 创建一个基于 GPS 的应用程序,并且有 2 个 Activity Main 和 LocNames。 Main 显示我的 map ,LocNames 用于获取用户想要的来源和
好的,我又来了。还在学习。现在我需要在 2 个 Activity 中来回传递整数值。第一个 Activity 将计数器值传递给第二个 Activity (跟踪玩家统计数据)。第二个 Activity
在我的应用程序中,我需要启动 RecyclerAdapter.class 并等待结果,但我无法编写行 setResult 并完成: public static class MyViewHolder e
我有一个期望用户选择项目的 Activity ,但用户可以选择单击后退按钮而不选择项目。这个“项目选择” Activity 是从 startActivityForResult() 开始的。 我想知道两
在谷歌的 C2DM 示例代码中,当在 BroadcastReceiver 中收到通知时,他们调用: setResult(Activity.RESULT_OK, null/* data */, null
我有一个 Activity A - 它在 Viewpager 中包含 3 个 fragment 。 fragment 编号 1,是一个新闻文章列表,当用户从列表中选择一篇新闻文章时, Activity
最初我认为所有的延续都是在线程池上执行的(给定一个默认的同步上下文)。然而,当我使用 TaskCompletionSource 时,情况似乎并非如此。 我的代码看起来像这样: Task Foo() {
我是一名优秀的程序员,十分优秀!