2016-04-26 18 views
0

私は、ボタンをクリックした後、私のアプリでMainActivityに非常に単純なスナックバーを表示しようとしていました。また、このボタンを押すと新しいアクティビティが開始されます。しかし、私がそれをクリックした後、Snackbarショーと新しい活動が始まりませんでした。私のMainActivityはRelativeLayoutであり、私はそれをCoordinatorLayoutに変更したくありません。スナックバーの単純なアンドロイドのスナックバーが動作しない

<RelativeLayout 
<TextView 
     android:id="@+id/tvReceived" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="Messages Received" 
     android:textSize="25sp" 
     android:gravity="center" 
     android:textStyle="bold" 
     android:textAllCaps="false" 
     android:textColor="#3079ab" 
     android:layout_marginTop="10dp"/> 

    <LinearLayout 
     android:id="@+id/linearMain" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/tvReceived" 
     android:layout_marginTop="7dp" 
     android:layout_marginBottom="50dp"> 
     <FrameLayout 
      android:id="@+id/receivedList" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"> 
     </FrameLayout> 
    </LinearLayout> 

    <Button 
     android:id="@+id/newMessage" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="New Message" 
     android:textAllCaps="false" 
     android:textSize="16sp" 
     android:layout_alignParentBottom="true" 
     android:layout_alignEnd="@+id/linearMain" 
     android:layout_marginBottom="32dp" /> 
</RelativeLayout> 

Javaコード:

Button btnNewSms = (Button) findViewById(R.id.newMessage); 
btnNewSms.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     Snackbar mySnackbar = Snackbar.make(v, R.string.new_message, Snackbar.LENGTH_LONG); 
     mySnackbar.show(); 
     Intent intent = new Intent(MainActivity.this, ComposeActivity.class); 
     startActivity(intent); 
    } 
}); 

何が悪いのでしょうか?前もって感謝します!

+1

を働いていた場合、活動は時にボタン開始される知っているよう

public void showMsgSnack(String msg) { snackbar = Snackbar.make(getCurrentFocus(), "Your Message here", Snackbar.LENGTH_INDEFINITE).setAction("Open", new View.OnClickListener() { @Override public void onClick(View v) { //Your Intent here } }); snackbar.show(); } 

に従うことによって、あなたのSnackbarの内側にあなたのボタンのクリックでActivityを開くことができます あなたはスナックバーを見ることができません。試してみてください、それが働いたら教えてください –

+0

何も間違っていません。 2つ目のアクティビティが始まると、最初の 'Activity'に' Snackbar'が表示されません。 'startActivity()'コールはあなたが思っているものなら 'Snackbar'を待つつもりはありません。 –

+0

ああ...はいそれは働いた! Snackbarの表示後に新しいアクティビティを開始することはできますか? CoordinatorLayoutはこれを行う必要がありますか? – Emile

答えて

2

ボタンをクリックしてSnackbarが表示されない場合は、コードを実行してコードを実行してください。Activityが開始されています。あなたは試してみて、私はそれがあなたの意図をコメントし、コードを実行

+0

完璧に動作します!ありがとうございました! – Emile

+0

@Emile:お手伝いします。乾杯! –

関連する問題