2016-06-22 40 views
0

我想打一個聯繫人列表應用程序中,它顯示在列表中的圖像和名字應用的主要活動後墜毀2 B2被點擊聯繫人列表中的應用程序

我的計劃是好的,沒有錯誤,除了 當我的活動從第二到一個變化,崩潰 所有的佈局十分精緻 我已創建自定義列表

MainActivity1.java

public class MainActivity1 extends AppCompatActivity { 
    ListView lv; 
    Button b; 
    List<details> alist = new ArrayList<details>(); 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main1); 
     lv = (ListView) findViewById(R.id.listView); 
     b = (Button) findViewById(R.id.button); 
     b.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent i = new Intent(getApplicationContext(), MainActivity2.class); 
       startActivity(i); 
       finish(); 
      } 
     }); 
     Intent back2 = getIntent(); 
     String s1, s2, s3, s4; 
     s1 = back2.getStringExtra("x1"); 
     s2 = back2.getStringExtra("x2"); 
     s3 = back2.getStringExtra("x3"); 
     s4 = back2.getStringExtra("x4"); 
     alist.add(new details(BitmapFactory.decodeResource(getResources(), R.drawable.un), s1, s2, s3, s4)); 
     contactnames arrayAdapter = new contactnames(this, alist); 
     lv.setAdapter(arrayAdapter); 
    } 
} 

MainActivity2.java

public class MainActivity2 extends AppCompatActivity { 
    EditText et1, et2, et3, et4; 
    Button b1, b2; 
    static String s, t, u, j; 
    List<details> detailsList = new ArrayList<details>(); 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main2); 
     Intent i = getIntent(); 
     et1 = (EditText) findViewById(R.id.editText1); 
     et2 = (EditText) findViewById(R.id.editText2); 
     et3 = (EditText) findViewById(R.id.editText3); 
     et4 = (EditText) findViewById(R.id.editText4); 
     b1 = (Button) findViewById(R.id.button1); 
     b2 = (Button) findViewById(R.id.button2); 
     b1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent back = new Intent(getApplicationContext(), MainActivity1.class); 
       startActivity(back); 
      } 
     }); 
     b2.setOnClickListener(new View.OnClickListener() { 
            @Override 
            public void onClick(View v) { 
             if ((et1.getText().toString().matches("")) || (et2.getText().toString().matches("")) || (et3.getText().toString().matches("")) || (et4.getText().toString().matches(""))) { 
              Toast.makeText(getApplicationContext(), "No field can be empty", Toast.LENGTH_SHORT).show(); 
             } else { 
              s = et1.getText().toString(); 
              t = et2.getText().toString(); 
              u = et3.getText().toString(); 
              j = et4.getText().toString(); 
              Intent back2 = new Intent(getApplicationContext(), MainActivity1.class); 
              back2.putExtra("x1", s); 
              back2.putExtra("x2", t); 
              back2.putExtra("x3", u); 
              back2.putExtra("x4", j); 
              startActivity(back2); 
             } 
            } 
           } 
     ); 
    } 
} 
+2

增加'MainActivity2.class'來顯示?如果是,請發佈錯誤堆棧跟蹤 – Opiatefuchs

回答

0

請提供崩潰的堆棧跟蹤。

您可能還會考慮startActivityForResult的概念來開啓活動,讓用戶與其交互並從中獲取結果,而不是命名您的意圖以啓動活動「backXYZ」。

相關問題