Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从片段中更改EditText文本

从片段中更改EditText文本
EN

Stack Overflow用户
提问于 2019-11-09 11:27:33
回答 3查看 2.2K关注 0票数 0

我需要从一个片段而不是从editText中编辑一个在main_layout上的MainActivity()。我尝试过将main_layout膨胀成片段,但这不起作用(editText不改变),然后我尝试创建方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 fun changeEditText(){
    editText.setText(R.string.name)
}

但是当我在我的片段中调用它时

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
MainActivity().changeEditText()

它给了我这个错误:

java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'android.content.pm.ApplicationInfo android.content.Context.getApplicationInfo()‘

如何从片段中编辑这个editText

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-11-09 11:34:22

不能通过活动的构造函数初始化活动。您可以从片段中调用方法,如下所示

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
((MainActivity)getActivity()).changeEditText();
票数 1
EN

Stack Overflow用户

发布于 2019-11-09 11:58:37

您可以从片段中调用getActivity()以获取对其父活动的引用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(activity as? MainActivity)?.changeEditText()

但是,更好的方法是使用监听器,这样片段就不会关心它的父活动实现了什么:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
interface Listener {
    fun onTextChanged()
}

fun changeEditText() {
    editText.setText(R.string.name)
    listener?.onTextChanged()
}
票数 1
EN

Stack Overflow用户

发布于 2019-11-09 12:55:15

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class MainActivity : AppCompatActivity() {
    //override ......

    fun changeText() {
        EditText editText = findViewById(R.id.my_edittext)
        edittext.text = "something"
    }
}

class MyFragment : Fragment() {
    private lateinit var hostActivity: AppCompatActivity

    override fun onAttach(context: Context){
        hostActivity = context as AppCompatActivity
    }

    override fun onViewCreated(){
        hostActivity.changeText()
    }
}

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class MainActivity :AppCompatActivity(), MyCallback() {
    // override ......

    override fun onTextChange(){
        val editText = findViewById(R.id.my_edittext)
        edittext.text = "something"
    }
}

class MyFragment : Fragment() {
    private lateinit var myCallback: MyCallback

    override fun onAttach(context: Context){
        myCallback = context as MyCallback
    }

    override fun onViewCreated(){
        myCallback.onTextChange()
    }
}

interface MyCallback {
    fun onTextChange()
}

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class MainActivity :AppCompatActivity(), MyCallback() {
    override fun onCreate(savedInstanceState: Bundle?){
        val sharedViewmodel = ViewmodelProviders.of(this).get(SharedViewModel.class)
        sharedViewmodel.text.observe(this, object: Observer<String> {
            override fun onChanged(text: String?){
                val editText = findViewById(R.id.my_edittext)
                edittext.text = text
            }
        })
    }
}

class MyFragment : Fragment() {
    private lateinit var hostActivity: AppCompatActivity

    override fun onAttach(context: Context){
        hostActivity = context as AppCompatActivity
    }

    override fun onViewCreated(){
        val sharedViewmodel = ViewmodelProviders.of(hostActivity).get(SharedViewModel.class)
        sharedViewmodel.text = "My new text"
    }
}

class sharedViewModel: ViewModel(){
    private val textHolderLiveData = MutableLiveData<String>()

    fun getText(): LiveData<String> {
        return textHolderLiveData
    }

    fun setText(text: String) {
        textHolderLiveData.value = text
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58782779

复制
相关文章
Android实现EditText文本颜色渐变
刚开始想着先是设置textColor属性就可以了,然后写了个一个带渐变的shap感觉不好使,于是乎就自定义解决,代码如下
程序员飞飞
2020/02/27
3.3K0
Android实现EditText文本颜色渐变
Android中EditText
1.android:hint="只能输入指定数字",文本框中显示提示信息 2.android:password="true"该文本框是一个密码框 3.android:phoneNumber="true"该文本框是一个电话框 4.android:digits="abcdefghijk"指输入内容限制为指定内容 5.android:drawableLeft="@drawable/icon"设置文本左边绘制指定图像 6.android:drawablePadding设置文本框内文本与图形间的间距 7.androi
欢醉
2018/01/22
7440
EditText把光标放在文本的末尾处
当手动设置EditText的文本时,光标会恢复到最前面,可以再监听中设置光标到末尾处,这样就好了,大家有什么问题可以在下方留言。
程思扬
2022/01/11
5790
CSS样式更改——文本Content
上篇文章主要讲述了CSS样式更改中的背景Background,这篇文章我们来谈谈文本Content内容的基础用法。
前端皮皮
2020/11/26
1.6K0
Power BI中的文本大写/小写自动更改现象
在处理一些英文姓名时,经常会发现,excel表中的大小写和Power BI中的不一样,这篇文章简单说明一下:
陈学谦
2021/12/08
4.3K0
Power BI中的文本大写/小写自动更改现象
SecureCRT更改vim中#注释的文本内容颜色
今天在学习redis的时候,发现vim打开redis.conf配置文件的时候,#注释起来的代码是蓝色的,阅读起来很不方便。
上分如喝水
2021/08/16
6.2K0
SecureCRT更改vim中#注释的文本内容颜色
实战:从 Redux 中的代码片段中应用柯里化!
本文通译自:JavaScript Currying: A Practical Example
掘金安东尼
2022/09/19
9840
LyScript 从文本中读写ShellCode
LyScript 插件通过配合内存读写,可实现对特定位置的ShellCode代码的导出,或者将一段存储在文本中的ShellCode代码插入到程序堆中,此功能可用于快速将自己编写的ShellCode注入到目标进程中,以用于后续测试工作。
微软技术分享
2022/12/22
5610
LyScript 从文本中读写ShellCode
LyScript 从文本中读写ShellCode
LyScript 插件通过配合内存读写,可实现对特定位置的ShellCode代码的导出,或者将一段存储在文本中的ShellCode代码插入到程序堆中,此功能可用于快速将自己编写的ShellCode注入到目标进程中,以用于后续测试工作。
微软技术分享
2022/12/28
6130
LyScript 从文本中读写ShellCode
如何从文本中构建用户画像
一文告诉你什么是用户画像 介绍了到底什么是用户画像,了解了用户画像的本质是为了让机器去看之后,这里谈一谈如何从文本中构建用户画像。
abs_zero
2018/04/11
4.8K0
如何从文本中构建用户画像
C#读写文本文件代码片段
读取文本文件代码片段 using System; using System.IO; public class TestReadFile { public static void Main(String[] args) { // Read text file C:\temp\test.txt FileStream fs = new FileStream(@c:\temp\test.txt , FileMode.Open, FileAccess.Re
用户8671053
2021/11/02
4380
Android开发学习笔记(十九)文本编辑框EditText
hint:文本框提示语 inputType:各种输入类型 imeOptions:右下角按键功能
zstar
2022/06/14
4570
Android开发学习笔记(十九)文本编辑框EditText
【Android从零单排系列七】《Android视图控件——EditText》
小伙伴们,在上文中我们介绍了Android视图控件TextView控件,本文我们继续盘点,介绍一下Android视图控件中的第二个控件——EditText。
再见孙悟空_
2023/02/10
9110
【Android从零单排系列七】《Android视图控件——EditText》
ScrollView内嵌套EditText导致EditText无法滑动
最近也碰到这样的问题  搜索了网上一个答案  解决方法有两种,这个里面完成是照着别人的思路来,
wust小吴
2019/07/08
1.1K0
Edittext In Listview,当listview的item中有edittext时,怎么保存edittext的值?
http://blog.csdn.net/lxk_1993/article/details/50527886
103style
2022/12/19
8580
Edittext In Listview,当listview的item中有edittext时,怎么保存edittext的值?
Vue.js 中的片段
为了使诸如屏幕阅读器之类的辅助技术能够解释网页和应用程序,无障碍支持是必需的。为了使这些技术起作用,开发人员需要考虑可访问性。
疯狂的技术宅
2020/01/14
2.7K0
Vue.js 中的片段
EditText在RecyclerView中的解决方案
有时候,一个列表中的Item会有EditText的出现,而由于View复用机制,如果不好好处理EditText,将会出现一些问题。之前做项目中也遇到了这个问题,通过摸索以及思考,最终得到了解决方案。
用户1108631
2019/08/14
2.8K0
关于RecyclerView中嵌套EditText引发的问题总结
最近在开发一个基于RecycelrView的编辑器, Recyclerview中包含Edittext在滚动时会发生数据混乱的问题,之所以数据混乱就是因为Recyclerview的复用导致的。
易帜
2022/09/23
2.3K0
点击加载更多

相似问题

从onTextChangeListener()更改EditText文本

20

从后台还原片段时更改EditText值

21

在非活动片段中更改EditText

11

从片段中获取edittext值

32

如何从片段中获取EditText

23
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文