Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从适配器更新活动中的EditText_Android - Fatal编程技术网

Android 从适配器更新活动中的EditText

Android 从适配器更新活动中的EditText,android,Android,我觉得如果我不得不发布一个关于这个的问题,我的大脑已经停止工作了,但它在这里。我有一个简单的Recyclerview适配器公共类RecentEmojiAdapter:Recyclerview.Adapter,具有以下OnCreateViewHolder覆盖 public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType) { var listitem = LayoutIn

我觉得如果我不得不发布一个关于这个的问题,我的大脑已经停止工作了,但它在这里。我有一个简单的Recyclerview适配器
公共类RecentEmojiAdapter:Recyclerview.Adapter
,具有以下
OnCreateViewHolder
覆盖

public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType)
  {
   var listitem = LayoutInflater.From(parent.Context).Inflate(Resource.Layout.item_emoji, parent, false);
   TextView E_IMAGE = listitem.FindViewById<TextView>(Resource.Id.emoji_image);
       EmojiViewHolder view = new EmojiViewHolder(listitem)
       {
          EImage = E_IMAGE                  
       };
   listitem.Click += (sender, e) => { OnClick(view.ECode); };            
   return view;
  }  
工作正常,但我只是停留在如何访问
EditText
并使用
EditText.Append(string)
更新它上-我的
EditText
位于主要活动中,其中RecyclerView位于片段中:)


我是否完全错了:?

我假设您正在适配器的构造函数上传递上下文。你可以使用它并将其作为你的活动。然后在MainActivity上公开EditText变量,以便适配器可以访问它

Context mContext;
List<DataModel> mData;

public YourAdapter(Context context, List<DataModel> data){
    mContext = context;
    mData = data;
}
然后在MainActivity上,公开声明editText

public EditText yourEditText;
在访问之前,请确保您的EditText已通过findViewById实例化


我希望这有帮助。干杯

您的活动应该使用特定的方法实现一个接口并将其传递给片段,您的片段应该实现一个接口并将其传递给适配器。单击recyclerview项时,您可以调用fragment实现的接口方法,该片段的方法应调用在活动中实现的接口方法,您可以访问edittext的更改文本。
MainActivity parentActivity = (MainActivity)mContext;
parentActivty.yourEditText.setText("Your text here")// Or do something about the edit text
public EditText yourEditText;