在textview android中设置字符串

在textview android中设置字符串,android,string,textview,Android,String,Textview,这段代码应该计算所有应用程序组合的总缓存,但我无法测试它。我希望计算出的缓存显示在我的文本视图中,我该怎么做 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myMethod(); } private void myMethod() {

这段代码应该计算所有应用程序组合的总缓存,但我无法测试它。我希望计算出的缓存显示在我的文本视图中,我该怎么做

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    myMethod();
}

private void myMethod() {
    PackageManager packageManager = getPackageManager();
    List<ApplicationInfo> packages = packageManager
            .getInstalledApplications(PackageManager.GET_META_DATA);

    for (ApplicationInfo packageInfo : packages) {
        try {
            Context mContext = createPackageContext(
                    packageInfo.packageName, CONTEXT_IGNORE_SECURITY);
            File cacheDirectory = mContext.getCacheDir();
            if (cacheDirectory == null) {
                // cacheArrayList.add("0");
            } else {
                cacheArrayList
                        .add(String.valueOf(cacheDirectory.length() / 1024));
            }
        } catch (NameNotFoundException e) {
            e.printStackTrace();
        }
    }
    TextView myTextView = (TextView) findViewById(R.id.cacheSize);
    myTextView.setText("YOUR STRING"); // replaces textview text
    myTextView.append("YOUR STRING"); // appends to current textview's text

}
@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myMethod();
}
私有void myMethod(){
PackageManager PackageManager=getPackageManager();
列表包=packageManager
.GetInstalledApplication(PackageManager.GET_元数据);
对于(ApplicationInfo packageInfo:packages){
试一试{
Context mContext=createPackageContext(
packageInfo.packageName,上下文(忽略安全性);
文件cacheDirectory=mContext.getCacheDir();
if(cacheDirectory==null){
//cacheArrayList.add(“0”);
}否则{
缓存列表
.add(String.valueOf(cacheDirectory.length()/1024));
}
}catch(nameNotFounde异常){
e、 printStackTrace();
}
}
TextView myTextView=(TextView)findViewById(R.id.cacheSize);
myTextView.setText(“您的字符串”);//替换textview文本
myTextView.append(“您的字符串”);//追加到当前textview的文本
}

Textview如下所示

  <TextView
    android:id="@+id/cacheSize"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_marginLeft="30dp"
    android:text="--" />

如果试图在文本视图上设置文本,则可以设置文本或追加文本

TextView myTextView = (TextView)findViewById(R.id.cacheSize);
myTextView.setText("YOUR STRING"); // replaces textview text
myTextView.append("YOUR STRING"); // appends to current textview's text

创建一个全局变量

TextView txt_view;
在活动add的oncreate方法中

txt_view = findViewById(R.id.cacheSize);
在活动中添加此方法

public void displaycache(){
                int k=0;
//on assuming cacheArrayList is a global variable
                for(int i =0;i<cacheArrayList.size();i++){
                   k+=Integer.parseInt(cacheArrayList.get(i));
                 }
                txt_view.setText(String.valueOf(k));
            }

在for每个循环之后,创建另一个循环,将数据从cacheArrayList放到某个字符串中

for(String s : cacheArrayList){
    string = string+s+"\n"
}

然后将此字符串放入textView

您有什么问题?您是否没有获取缓存大小?或者您无法在文本视图上设置缓存大小我无法在文本视图上设置缓存大小计算总缓存的总和。将其存储到变量中,并用变量替换“您的字符串”。我感到困惑:(我的变量是什么?我从答案中得到的代码是不完整的。我从某个答案中得到的代码是不完整的,我该如何处理cacheArrayList?这是一个问题,我正在尝试计算总缓存并在我的textview中显示它。创建全局变量ArrayList cacheArrayList=new ArrayList();它不起作用,即使我清除缓存,它在我的文本视图中始终显示相同的值,它显示“496”中选择了正确的答案使用该代码获取大小,您当前的代码计算缓存目录名称的大小,而不是目录中文件占用的大小
for(String s : cacheArrayList){
    string = string+s+"\n"
}