Android studio 无法从其他类更新TextView

Android studio 无法从其他类更新TextView,android-studio,Android Studio,我的android项目有3个类MainActivity.java、itemlist.java和Bill.java 我从itemlist.java类创建了Bill类的对象,并从中传递了上下文。 所以,当我尝试从Bill.java类更新textview时,它不会更新,但当我从MainActivity更新textview时,它会工作 所以我的问题是如何让这个文本视图更新工作 package com.example.smit.databasedemo.Functions; import android

我的android项目有3个类MainActivity.java、itemlist.java和Bill.java

我从itemlist.java类创建了Bill类的对象,并从中传递了上下文。 所以,当我尝试从Bill.java类更新textview时,它不会更新,但当我从MainActivity更新textview时,它会工作

所以我的问题是如何让这个文本视图更新工作

package com.example.smit.databasedemo.Functions;

import android.app.Activity;
import android.content.Context;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextView;

import com.example.smit.databasedemo.MainActivity;
import com.example.smit.databasedemo.R;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * Created by Smit on 18-02-2020.
 */


public class Bill extends AppCompatActivity{
    private LayoutInflater inflater;
    private final View view;


    public Bill(Context context){
        inflater = (LayoutInflater) context.getSystemService(LAYOUT_INFLATER_SERVICE);
        view = inflater.inflate(R.layout.activity_main,null);
    }
这里使用从MainActivity传递的getApplicationContext()传递上下文

    public void calculate(String bill){

        final TextView billText = (TextView) view.findViewById(R.id.useless);

        String text = (billText.getText().toString())+bill;
        //Here the text is fetched from same textbox but fail's to update
        Pattern p = Pattern.compile("\\d+");
        Matcher m = p.matcher(text);
        String[] amount= new String[2];
        int i=0;
        while(m.find()){
            amount[i] = m.group();
            i++;
        }
        int amount_prev = Integer.valueOf(amount[0]);
        final int total = (amount_prev)+(Integer.valueOf(amount[1]));
        billText.setText("Total Bill:"+total+"Rs");
        //Cannot update this textbox



    }

}

final Bill bill = new Bill(context);

//this is how its called
public void onClick(View v) {
                        counter++;
                        price= (finalViewHolder.price.getText().toString());
                        finalViewHolder.item.setText(String.valueOf(counter));
                        bill.calculate(price);

                    }

p、 s尝试在uiThread()上运行无效

您必须通过构造函数传递上下文引用:

public Bill(Context context){
    this.context=context;
//rest of your code...

}
还可以找到如下文本视图:

TextView billText = (TextView) ((Activity)context).findViewById(R.id.useless);

它以什么方式不更新?您是否收到任何错误,或者只是没有看到成员函数?没有,没有错误,只是您无法在Textview@Owl“Textview billText=(Textview)((活动)上下文)中看到文本的更改。findViewById(R.id.unavouse);”正在抛出错误android.app.Application无法强制转换为android.app.ActivityChanged Context到MainActivity.this,现在它像一个符咒一样工作谢谢@MZ97