2017-04-12 73 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