2016-05-10 4 views
0

私は、特定のアクティビティをクリックして開く必要があるアクションバーのメニューを持っています。私は開いているアクティビティ(MaininsertActivity.java)を呼び出しますが、ビューはアクティビティ_main2 .xmlのonOptionsItemSelected(MenuItem item)は間違ったアクティビティを開きます

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

ためのonCreate()でMaininsertActivityあなたはMain2Activityを始めているの。あなたは、あなたがMaininsertActivityののonCreateでMain2Activityと呼ばれているので、あなたがMain2Activity画面

0

ザッツを取得しているため、このコードで

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

Main2Activityレイアウト

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

を見ている理由ですメニュー項目をクリックすると、MaininsertActivityが最初に起動しますが、OnCreateのように別の意図であるので、それはMainA2ctivityに推し進められている。あなたはのonCreateメソッドのthatsに意図を渡しているMain2Activityクラス

0

。そして、「MaininsertActivity」ののonCreateメソッドで

+0

あなたはonCreateをMainSertActivityクラスのoutCreateに置くことができます。 – shlomo

0

にMaininsertActivityでのonCreateで呼び出すので、なぜ、あなたのinsertActivityであなたの意図を削除することを

0

をクリックして、あなたはこれらの行で「Main2Activity」を開始しているボタンに配置しよう:

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

したがってMainActivity2のレイアウトが画面に表示されている - R .layout.activity_main2

関連する問題