【问题标题】:ArrayList shows in red and won't compile --- java androidArrayList 显示为红色,无法编译 --- java android
【发布时间】:2015-11-22 18:43:59
【问题描述】:

mytextview.setText(xyzList[0][0]);

线路失败 (RED)。
恐怕我把一切都搞混了。
我知道这很简单。
我正在尝试在相关的 TextView 上编写我用 dan_akdag.pgn 文本文件(带有“”拆分)填充的数组的第一个实例。

谁能帮帮我?
我还是个新手。

import android.content.res.AssetManager;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;
import android.widget.Toast;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        AssetManager manager;
        String line = null;
        List<String[]> xyzList = new ArrayList<String[]>();
        String[][] xyz;
        InputStream is = null;
        InputStreamReader isr = null;
        BufferedReader br = null;
            try {
            manager = getAssets();
            is = manager.open("dan_akdag.pgn");
            isr = new InputStreamReader(is);
            br = new BufferedReader(isr);
            while ((line = br.readLine()) != null) {
                xyzList.add(line.split(" "));
            }
            xyz = (String[][]) xyzList.toArray();
            TextView mytextview = (TextView) findViewById(R.id.showarray);
         **   mytextview.setText(xyzList[0][0]);   **

          } catch (IOException e1) {
            Toast.makeText(getBaseContext(), "Problem!", Toast.LENGTH_LONG).show();
        } finally {

            try {
                //if(reader != null)
              //  reader.close();
                if (br != null)
                br.close();
                if (isr != null)
                isr.close();
                if (is != null)
                is.close();
            } catch (IOException ex) {
            // dosomething
                ex.printStackTrace();
            }


         }


     }
 }

【问题讨论】:

    标签: java android string arraylist


    【解决方案1】:

    改变

    mytextview.setText(xyzList[0][0]);
    

    mytextview.setText(xyz[0][0]);
    

    因为xyzList 不是数组,而xyz 是。

    也改变

    xyz = (String[][]) xyzList.toArray();
    

    xyz = xyzList.toArray(new String[xyzList.size()][]);
    

    Object[] 转换为String[][] 将不起作用。它会抛出一个ClassCastException

    【讨论】:

    • 我照你说的做了。它给出了以下重建错误:错误:prolog 中不允许内容。 D:\Android_Dosyalar\Proje\TextToArray\app\src\main\res\assets\akdag_ljubicic.pgn 错误:(1, 1) 错误:prolog 中不允许内容。 :app:mergeDebugResources FAILED 错误:任务 ':app:mergeDebugResources' 执行失败。 > D:\Android_Dosyalar\Proje\TextToArray\app\src\main\res\assets\akdag_ljubicic.pgn:1:1: 错误:prolog 中不允许内容。
    • 文件夹结构:res assets akdag_ljubicic.pgn akdag_serradimigni.pgn dan_akdag.pgn
    • 该文件是一个文本文件,它包含国际象棋游戏的元素。顺便说一句,R 现在也在给 RED。 :)
    • 这是 assets 文件夹的位置,正确的位置应该是 /src/main/assets。再次感谢...问候,阿齐兹
    【解决方案2】:

    改变

    mytextview.setText(xyzList[0][0]);
    

    mytextview.setText(xyz[0][0]);
    

    xyzList 指的是您的ArrayList,而不是array

    【讨论】:

    • 感谢您的评论。问候
    猜你喜欢
    • 1970-01-01
    • 2019-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-22
    • 2011-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多