如何在其他活动中读取公共静态最终字符串

丹尼尔

我有 2 个主要活动,我将在其中将字符串保存在目录文件中,另一个活动将读取它的文件目录,这是我将保存文件的活动代码

package com.example.java;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class MainActivity2 extends AppCompatActivity {
    public static final String extraint = "1";
    public static final String namabarang = "2";
    public static final String jumlahstock ="3";
    public static final String FILE_NAME="example.txt";

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

        Intent intent = getIntent();

        Spinner spinner = (Spinner) findViewById(R.id.spinner);

        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
                R.array.planets_array, android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);
    }

    public void onBtnClick(View view){


        TextView plain1 = findViewById(R.id.NamaBarang);
        TextView plain2 = findViewById(R.id.SKU);
        TextView plain3 = findViewById(R.id.JumlahStok);
        TextView plain4 = findViewById(R.id.HargaBeli);
        TextView plain5 = findViewById(R.id.HargaJual);
        Intent intent = new Intent(this,MainActivity3.class);
        String x = "1";

        String text = plain1.getText().toString();
        FileOutputStream fos = null;

        try {
            fos = openFileOutput(FILE_NAME, MODE_PRIVATE);
            fos.write(text.getBytes());

            Toast.makeText(this,"Saved to" +getFilesDir() + "/" + FILE_NAME,Toast.LENGTH_LONG).show();
        }catch(FileNotFoundException e){
            e.printStackTrace();
        }catch(IOException e){
            e.printStackTrace();
        }finally{
            if(fos != null){
                try{
                    fos.close();
                }catch(IOException e){
                    e.printStackTrace();
                }
            }
        }

        intent.putExtra(extraint,x);
        intent.putExtra(FILE_NAME,text);
        intent.putExtra(namabarang,plain1.getText().toString());
        intent.putExtra(jumlahstock,plain3.getText().toString());
        startActivity(intent);



    }
}

这是应该读取文件的活动

package com.example.java;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.renderscript.ScriptGroup;
import android.util.Log;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.ListView;

import org.w3c.dom.Element;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.sql.Array;
import java.util.ArrayList;
import java.util.Arrays;


public class MainActivity3 extends AppCompatActivity {
    private static final String Tag = "MainAcitivity3";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main3);
        Log.d(Tag, "onCreate: Started.");
        ListView mListView = (ListView) findViewById(R.id.listView);
        Intent intent = getIntent();

        String[] barang = new String[20];
        String[] jumlah = new String[20];
        ArrayList<Item> itemlist = new ArrayList<Item>();

        barang[0] = intent.getStringExtra(MainActivity2.namabarang);
        jumlah[0] = intent.getStringExtra(MainActivity2.jumlahstock);
        String text;
        FileInputStream fis = null;
        try {
            fis = openFileInput(FILE_NAME);
            InputStreamReader isr = new InputStreamReader(fis);
            BufferedReader br = new BufferedReader(isr);
            StringBuilder sb = new StringBuilder();

            while ((text = br.readLine()) != null){
                sb.append(text).append("\n");
            }


        }catch(FileNotFoundException e){
            e.printStackTrace();
        }catch(IOException e){
            e.printStackTrace();
        }finally {
            if(fis!=null){
                try{
                    fis.close();
                }catch(IOException e){
                    e.printStackTrace();
                }
            }
        }

        for(int i=0;i<20;i++) {
            Item sparepart = new Item(barang[i], jumlah[i]);

            itemlist.add(text);
        }
        PersonListAdapter adapter = new PersonListAdapter(this, R.layout.adapter_view_layout,itemlist);
        mListView.setAdapter(adapter);

        String number = intent.getStringExtra(MainActivity2.extraint);
        if(number != null) {
            FrameLayout lay = (FrameLayout) findViewById(R.id.frames);
            if (number.equals("1")) {
                lay.setVisibility(View.INVISIBLE);
                mListView.setVisibility(View.VISIBLE);
            } else {

            }
        }
        else{}

    }

    public void onBtnClick (View view){
        Intent intent = new Intent(this,MainActivity2.class);

        startActivity(intent);
    }



}

但是代码中的问题fis = openFileInput(FILE_NAME);无法读取公共静态字符串FILE_NAME,我尝试使用意图但它不起作用

红威廉姆斯

错误很可能与语法有关。静态对象属于类本身而不是这些类的实例。由于FILE_NAMEMainActivity2的字段,并且您尝试从 访问它MainActivity3,那么您只需要包含该类:

fis = openFileInput(MainActivity2.FILE_NAME);

例如,如果您在不同的类中有同名的另一个变量,则该规范是必要的。如果你FILE_NAME你的定义MainActivity3然后它当然会从中拉出来。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在其他活动中发送从QRcode扫描器读取的字符串

如何在其他字符串中回显字符串?

无法在Java中创建公共静态最终字符串

如何在flutter中加密字符串并在其他设备中解密此加密字符串?

如何确定子字符串是否在其他字符串中

如何在其他zip文件(如果有)中的zip文件中搜索字符串

如何在其他活动中设置sharedPreferences的值?

如何在其他活动中显示json响应?

如何在其他字符串之间使用/删除仅数字集?

如何在其他字符串中找到 Json 数据?

如何在其他python 3中找到与最后n个字符串匹配的前n个字符串之间的重叠?

在 Python 中打印时如何在其他两个字符串之间插入一个字符串

如何在C#字符串中替换其他字符而忽略其他字符?

如何确定变量的范围以用作公共静态最终字符串?

在映射器文件的Mybatis SQL中访问公共静态最终字符串

如何查看表中的字符串是否包含在其他表中指定的字符串

如何在Powershell中的其他字符串中插入多行字符串?

使用else字符串中的字符串并在其他视图中显示

如何读取包含在特定标签中的字符串并将其替换为其他字符串?

当被测试的字符串中存在其他字符时,Powershell 正则表达式如何防止匹配

访问其他 Java 活动时静态字符串变量不会更改

如何在JPA 2.0元模型中自动将列名称生成为静态最终字符串?

如何在C#中获取字符串中的所有其他字符

给定的字符串列表仅返回未包含在其他字符串中的字符串

如何在其他两个字符串之间获取多个字符串

如何在其他行之前放置字符串“ title”,直到新的字符串“ title”。用awk,sed,perl等解决的递归问题

如何在c中的其他字符串中找到该字符串的给定字符的索引?

如何使用unpivot函数忽略字符串值,在其他列中查找最小值

如何在公共静态字符串GetMessage(字符串文本)中更正此Build错误。带下划线的GetMessage