0

以下のコードを使用して、あるアクティビティ画面から別のアクティビティ画面に移動しようとしています。最初のアクティビティMainActivityには、クリックするとボタンが1つしかありません。他のアクティビティMenactivityを呼び出すつもりですが、ボタンをクリックしても何も起こらず、時々プロンプトが表示された後、「残念ながら、アプリケーションは動作を停止しました。2番目のアクティビティを追加しました私のマニフェストも.エラーとしてNullpointer例外が発生し、スレッドが開始されません.助けてください.

      package com.example.samplexml;




        import android.os.Bundle;
        import android.app.Activity;
        import android.content.Intent;
        import android.view.View;
        import android.view.View.OnClickListener;
        import android.widget.Button;

     //First Activity (Mainactivity)

        public class MainActivity extends Activity {
           @Override
           protected void onCreate(Bundle savedInstanceState) {
               super.onCreate(savedInstanceState);
               setContentView(R.layout.activity_main);
               Button b2= (Button) findViewById(R.id.button2);

               b2.setOnClickListener(new OnClickListener() {
                      @Override
                      public void onClick(View v) {

                          Intent intent = new Intent(MainActivity.this, MenActivity.class);
                            startActivity(intent);
                      }}); 

           }
        }


//Second Activity(Menactivity)

package com.example.samplexml;

import java.io.File;
import java.io.IOException;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;


import org.w3c.dom.Document;
import org.w3c.dom.Element;

import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MenActivity extends Activity {

    TextView  myTextView;
     EditText E1;
     EditText E2;
     EditText E3;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);


  Button b1= (Button) findViewById(R.id.button1);
  Button b2= (Button) findViewById(R.id.button3);
  Button b3= (Button) findViewById(R.id.button3);
   E1 = (EditText) findViewById(R.id.editText1);
   E2 = (EditText) findViewById(R.id.editText2);
   E3 = (EditText) findViewById(R.id.editText3);

  b1.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View arg0) { 




            DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder docBuilder;
            try {
                docBuilder = docFactory.newDocumentBuilder();


            // root elements
            Document doc = docBuilder.newDocument();
            Element rootElement = doc.createElement("Class");
            doc.appendChild(rootElement);

            // staff elements
            Element student = doc.createElement("Student");
            rootElement.appendChild(student);


            // firstname elements
            Element firstname = doc.createElement("firstname");
            firstname.appendChild(doc.createTextNode(E1.getText().toString()));
            student.appendChild(firstname);

            Element Email = doc.createElement("Email");
            Email.appendChild(doc.createTextNode(E2.getText().toString()));
            student.appendChild(Email);

            // nickname elements
            Element Roll = doc.createElement("Roll_No");
            Roll.appendChild(doc.createTextNode(E3.getText().toString()));
            student.appendChild(Roll);


                    // write the content into xml file
            TransformerFactory transformerFactory = TransformerFactory.newInstance();



                Transformer transformer = transformerFactory.newTransformer();


            DOMSource source = new DOMSource(doc);

            File FF=new File(Environment.getExternalStorageDirectory()+"//new1.xml");
            //File FF=new File(Environment.getExternalStorageDirectory()+"//new.xml");
            try {
                if (FF.exists());
                    FF.delete();
                FF.createNewFile();
            } catch (IOException e) {
                // Handle the error here! don't ignore it. Either throw the exception all the way, or log it, or something.
                e.printStackTrace();
            }

            StreamResult result = new StreamResult(FF);
        transformer.transform(source, result);

                }
             catch (ParserConfigurationException e) {

                e.printStackTrace();
            }
             catch (TransformerException e) {

                    e.printStackTrace();}  
            Toast.makeText(getApplicationContext(), 
                    Environment.getExternalStorageDirectory().toString(), Toast.LENGTH_LONG).show();


                                }
    });
  b2.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {

          Intent intent = new Intent(MenActivity.this, MainActivity.class);
            startActivity(intent);
      }}); 

  b3.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
          // Close the application
          finish(); }});
  }
}
4

1 に答える 1

0

あなたが提供した唯一のデバッグ情報 (NullPointerException が発生しています) に基づいて、あなたの意図は正しく起動されており、問題は の構築にあるようMenActivityです。

button1おそらく、そのアクティビティの膨張したレイアウトには、、button2および/またはの ID が含まれていませんbutton3

いくつかの非常に基本的なデバッグは、問題が発生している正確な行を指摘します。

于 2013-05-11T15:04:15.290 に答える