2017-04-12 91 views
-3

我正在構建一個Android Studio應用程序,但每次點擊一個按鈕時,應用程序崩潰。 這是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> 

我希望應用程序從「網主頁」的頁面切換到名爲「佈局」頁面 你能幫幫我嗎?

+0

發佈您的logcat – AbhayBohra

回答

0

在XML替換該

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

在Java

 public void buton1(View v){ 

setContentView(R.layout.layout); 

}`

+0

謝謝先生,但您給我的代碼只顯示一條消息,我想切換到另一個XML頁面,請問您可以告訴我怎麼做? – user7804967

+0

@ user7804967查看我的更新回答 –

+0

謝謝先生,它的工作,你是最好的 – user7804967

0

你的問題不明確!當你在MainActivity的按鈕中按下時,你是否想從MainActivity更改爲另一個活動,你必須創建第二個Activity讓它調用它SecondActivity使用Android Studio創建活動它將默認爲SecondActivity添加xml文件。

在XML文件中添加

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

然後在MainActivity.java文件中添加此

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膨脹的佈局資源文件並附加到活動。必須在onCreate中調用

如果要更改活動中的佈局,則必須膨脹R.layout.layout,從R.layout.activity_main刪除舊視圖並將膨脹視圖添加到佈局中。

但是,這一切都是不正確的。嘗試在activity_main中添加您的所有內容,並使用View.setVisibility(VISIBLE/INVISIBLE/GONE)獲取視圖以顯示和隱藏它們。

+0

所以它實際上就像一個帶有多個DIV的HTML頁面,根據用戶的操作顯示或不顯示,對吧?非常好的建議 – user7804967