在其他方法 Android 中使用 Textview.setText

Posted

技术标签:

【中文标题】在其他方法 Android 中使用 Textview.setText【英文标题】:use Textview.setText in other method Android 【发布时间】:2016-01-26 13:52:15 【问题描述】:

如何在其他方法中使用 textview 值?我想将“txtTitle.setText”的值用于其他活动(汽车),但我不能在 onclick 方法上使用它。

    public View getView(int position, View view, ViewGroup parent) 
       LayoutInflater inflater = context.getLayoutInflater();
       View rowView = inflater.inflate(R.layout.single_list, null, true);

       TextView txtTitle = (TextView) rowView.findViewById(R.id.txt);
       txtTitle.setText(companyname[position]);

    txtTitle.setOnClickListener(new View.OnClickListener() 
        public void onClick(View v) 
            Intent intent = new Intent(context, Cars.class);
            intent.putExtra("carId", txtTitle.getText());
            context.startActivity(intent);
        
    );

请编辑我的代码 谢谢

【问题讨论】:

请明确说明您想做什么。将 textview 的值发送到另一个活动? 是的,但 textview 用 txtTitle.setText(companyname[position]) 更改,例如当 postion 为 1 时,公司名称为 ford ,位置为 2 公司名称为 Benz 和 ...,我想在intent.putextra中使用txtTitle.setText的值 【参考方案1】:

您的 TextView txtTile 仅在您的 getView 方法中知道,因为您在那里创建了它 - 您需要在您的类中声明这个变量,在任何方法之外。

只需调用:

TextView txtTitle;

getView 你这样设置:

 txtTitle = (TextView) rowView.findViewById(R.id.txt);

【讨论】:

是否需要写context.startActivity(intent);而不是 startActivity(intent); ? 非常感谢您,但您只发送了一个公司名称。为什么 txtTitle.setText(companyname[position]) 不起作用? 我假设您在适配器中 - 那么是的,有必要在您的上下文中调用 startActivity,因为适配器不知道任何方法 startActivity【参考方案2】:

你不能那样使用它,txtTitle 的范围被缩减为方法getView (see),你应该将TextView 定义为一个全局字段,这样你就可以使用它了任何你想要/需要的地方。

【讨论】:

以上是关于在其他方法 Android 中使用 Textview.setText的主要内容,如果未能解决你的问题,请参考以下文章

Android使用自定义字体

Android 应用小部件未更新

为什么要有handler机制

Android:遍历字符串数组 - 意图方法的逻辑需要帮助

Android设置字体样式

如何单击android应用程序中的特定元素?