2017-04-12 10 views
-3

Androidスタジオアプリを構築していますが、ボタンをクリックするたびにアプリがクラッシュします。 これは、Java MainActivityファイルです:私は追加クリックするとAndroidエラーが発生する

package com.example.alex.exemplu1; 

import android.os.Bundle; 
import android.support.design.widget.FloatingActionButton; 
import android.support.design.widget.Snackbar; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.view.View; 
import android.view.Menu; 
import android.view.MenuItem; 

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 

     FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
     fab.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) 
         .setAction("Action", null).show(); 
      } 
     }); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.menu_main, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 

     //noinspection SimplifiableIfStatement 
     if (id == R.id.action_settings) { 
      return true; 
     } 

     return super.onOptionsItemSelected(item); 
    } 
    public void buton1() 
    { 
     setContentView(R.layout.layout); 
    } 

唯一のことは、ブトン1機能である、私はそれがページを変更したいです。 は、これは私のXMLファイルです:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:weightSum="1"> 
<TextView 
    android:layout_width="match_parent" 
    android:layout_height="110dp" 
    android:text="hello World!" 
    android:textSize="50dp" 
    android:textColor="@android:color/holo_blue_bright" 
    android:background="@android:color/holo_green_dark" 
    android:textAlignment="center"/> 
<Button 
    android:layout_width="match_parent" 
    android:layout_height="100dp" 
    android:text="welcome" 
    android:onClick="buton1()" 
    /> 
</LinearLayout> 

私はアプリは、「レイアウト」 という名前のページに、「メインページ」からページを切り替えたいあなたは私を助けてくださいことはできますか?あなたのXMLで

+0

あなたのlogcatを投稿してください – AbhayBohra

答えて

0

は、このJava

<Button 
android:layout_width="match_parent" 
android:layout_height="100dp" 
android:text="welcome" 
android:onClick="buton1" 
/> 

 public void buton1(View v){ 

setContentView(R.layout.layout); 

} `

+0

ありがとうございました、あなたが私に与えたコードは、メッセージを表示するだけです、別のXMLページに切り替えるにはどうすればいいですか? – user7804967

+0

@ user7804967それをチェックしてください私の更新された答え –

+0

ありがとう、それは働いています、あなたは最高です – user7804967

0

あなたの質問は明らかではないが、交換してください! MainActivityのボタンを押すとMainActivityから別のアクティビティに変更したいのですが、2番目のアクティビティを作成する必要があります。SecondActivityはAndroidスタジオを使ってアクティビティを作成します。デフォルトではSecondActivityのxmlファイルが追加されます。 xmlファイルで

はMainActivity.javaファイルに次に

<Button 
android:id="@+id/changeButton_id" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="change"/> 

を追加ボタンをクリックすると、この

Button changeButton=(Button)findViewByid(R.id.changeButton_id); 
changeButton.setOnClickListener(new View.OnClickListener() 
    { 
     @Override 
     public void onClick(View view) 
     { 
      Intent intent=new 
      Intent(MainActivity.this,SecondActivity.class); 
      startActivity(intent); 
     } 
    }); 
0

setContentViewを呼び出さないでください追加します。

setContentView inflateのレイアウトリソースファイルとアクティビティに添付します。 onCreate

アクティビティのレイアウトを変更する場合は、R.layout.layoutを膨張させ、古いビューをR.layout.activity_mainから削除して、レイアウトに膨張したビューを追加する必要があります。

しかし、この方法はすべて正しくありません。すべてのコンテンツをactivity_mainに追加し、ビューを表示したり非表示にするにはView.setVisibility(VISIBLE/INVISIBLE/GONE)を使用してください。

+0

これは実際には、複数のDIVが表示されているかどうかにかかわらず、ユーザーの操作に応じてHTMLページに似ています。非常に良いアドバイス – user7804967

関連する問題