2016-05-10 22 views
0

我有一個菜單應該在點擊時打開一個特定的活動,即時通訊調用我想打開的活動(MaininsertActivity.java),但我看到它的activity_main2 .XMLonOptionsItemSelected(MenuItem項目)打開錯誤的活動

MainActivity.java

package com.example.bugdroid.trabalhoapp1; 

import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuInflater; 
import android.view.MenuItem; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 

import com.example.bugdroid.trabalhoapp1.modelo.Series; 
import com.example.bugdroid.trabalhoapp1.modelo.Serie; 

public class MainActivity extends AppCompatActivity { 

    private ListView lv; 

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

     lv = (ListView) findViewById(R.id.lista_series); 

     Series Series = new Series(); 

     Serie exemplo = new Serie ("Thrones", "açao", 50, 10, 1900); 
     Series.getLista().add(exemplo); 

     exemplo = new Serie("CSI", "Policial", 30, 20, 4); 
     Series.getLista().add(exemplo); 

     exemplo = new Serie("Flash", "aventura", 30, 20, 4); 
     Series.getLista().add(exemplo); 

     exemplo = new Serie("Vikings", "Historia", 3, 2, 4); 
     Series.getLista().add(exemplo); 

     ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, Series.getLista()); 

     lv.setAdapter(adapter); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     MenuInflater inflater = this.getMenuInflater(); 
     inflater.inflate(R.menu.menu, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 

     int id = item.getItemId(); 

     if(id == R.id.action_add) { 
      Intent intent = new Intent(this, MaininsertActivity.class); 
      startActivity(intent); 
      return true; 
     } 
     return super.onOptionsItemSelected(item); 
    } 
} 

MaininsertActivity.java

package com.example.bugdroid.trabalhoapp1; 

import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.widget.EditText; 

public class MaininsertActivity extends AppCompatActivity { 

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

     EditText et = (EditText) findViewById(R.id.nomeSerie); 
     String nomedaserie = et.getText().toString(); 

     Intent i = new Intent(this, Main2Activity.class); 
     i.putExtra("nomeSerie", nomedaserie); 
     startActivity(i); 

    } 
} 

Main2Activity.java

package com.example.bugdroid.trabalhoapp1; 

import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.widget.ListView; 

import com.example.bugdroid.trabalhoapp1.modelo.Serie; 

import java.util.ArrayList; 

public class Main2Activity extends AppCompatActivity { 

    String uriString; 

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

      Intent i = getIntent(); 
      uriString = i.getStringExtra("nomeSerie"); 
    } 
} 

這是我的項目樹:

https://gyazo.com/e3cae13f1b62c2cb1442f377405ca55b

回答

1

MaininsertActivity的,因爲的onCreate()你開始Main2Activity。這就是爲什麼你看到的,因爲這個代碼,你得到Main2Activity屏幕

0

Main2Activity佈局

Intent i = new Intent(this, Main2Activity.class); 
i.putExtra("nomeSerie", nomedaserie); 
startActivity(i); 

,因爲你叫的MaininsertActivity的onCreate的Main2Activity

Intent i = new Intent(this, Main2Activity.class); 
     i.putExtra("nomeSerie", nomedaserie); 
     startActivity(i); 

所以當你點擊菜單項時,它首先啓動MaininsertActivity,但在OnCreate中,那裏是另一種意圖,所以它是MainA2ctivity

0

是因爲你在OnCreate在MaininsertActivity打電話給Main2Activity類

+0

你可以把代碼放在MainInsertActivity類的onCreate中outSide onCreate和它的罰款 – shlomo

0

你逝去的意圖在onCreate方法就是爲什麼,刪除你的意圖在insertActivity。並儘量放在按鈕點擊

0

在「MaininsertActivity」的onCreate方法,你開始「Main2Activity」這些行:

Intent i = new Intent(this, Main2Activity.class); 
i.putExtra("nomeSerie", nomedaserie); 
startActivity(i); 

因此MainActivity2的佈局是在屏幕上可見 - [R .layout.activity_main2

相關問題