0

SD カードから xml ファイルを読み取ろうとしていますが、機能しません。空のアクティビティが読み込まれ、TextView が空です。コードを削除して xml を読み取り、テキストを t.setText("hello"); として設定した場合 それは正常に動作します

コードはここにあります。

     public void onCreate(Bundle savedInstanceState) {


     super.onCreate(savedInstanceState);


     setContentView(R.layout.activity_sdcard1);


     TextView t;


     t=(TextView) findViewById(R.id.T1);


     try{


          File f = new File(Environment.getExternalStorageDirectory()+"/page1.xml");


          InputStream fileIS = new FileInputStream(f);


          // InputStreamReader input= new InputStreamReader(fileIS);


          xpp.setInput(fileIS,"UTF-8");


          eventType = xpp.getEventType();


          while (eventType != XmlPullParser.END_DOCUMENT){


             if(eventType == XmlPullParser.TEXT) {
                          t.setText(t.getText()+xpp.getText());
                  }
         }


       } catch (FileNotFoundException e1) {


            e1.printStackTrace();


       } catch (XmlPullParserException e) {


        // TODO Auto-generated catch block


        e.printStackTrace()
       }

    }

<?xml version="1.0" encoding="UTF-8"?>

<page1>

<Text1>Hello.</Text1>

<Text2>World!</Text2>

</page1>

およびsdcard/page1.xmlのxmlファイルは、さまざまな方法で試しましたが、機能しません。ありがとう ...

whileループ内に2行のコードを書かなければならないことがわかりました

    eventType = xpp.next();


    eventType = xpp.getEventType();

今では正常に動作します! 手伝ってくれてありがとう....

4

2 に答える 2

0

以下のコードを使用してファイルを読み取ってみてください。

     File myFile = new File("/sdcard/page1.xml");
        FileInputStream fIn = new FileInputStream(myFile);
        BufferedReader myReader = new BufferedReader(
                new InputStreamReader(fIn));
        String aDataRow = "";
        String aBuffer = "";
        while ((aDataRow = myReader.readLine()) != null) {
            aBuffer += aDataRow + "\n";
            Log.d("File Is DATA:===>",aBuffer.toString());
        }
        myReader.close();
        Toast.makeText(getBaseContext(),
                "Done reading SD 'page1.xml'",
                Toast.LENGTH_SHORT).show();
    } catch (Exception e) {
        Toast.makeText(getBaseContext(), e.getMessage(),
                Toast.LENGTH_SHORT).show();
    }
于 2013-03-01T07:58:17.077 に答える
0
Try below code -

File rootDir = null;

            rootDir = Environment.getExternalStorageDirectory();

            try {
                File myFile = new File(rootDir.getAbsolutePath(), "Your file Name");
                FileInputStream fIn = new FileInputStream(myFile);


            } catch (Exception e) {

            }
于 2013-03-01T07:56:08.443 に答える