2016-06-15 228 views
-1

对于学校项目,我创建了一个简单的应用程序。但是,我遇到了一个问题来完成应用程序。Android Studio在MainActivity.java中创建多个onCreate方法

我一直在试图让我的主布局上的两个按钮。这些按钮应打开第二个布局,一个称为barcode_scanner.xml,另一个称为vragen.xml

但是,只有第一个按钮才能打开扫描仪。第二个按钮不起任何作用。

这是我目前从MainActivity.java

package com.kvprasad.zbarbarcodescanner; 

import android.content.Intent; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.Button; 

public class MainActivity extends AppCompatActivity { 

    private Button scannerButton; 

@Override 
     //Barcodescanner knop 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 
      Button next = (Button) findViewById(R.id.scannerButton); 
      next.setOnClickListener(new View.OnClickListener() { 
       public void onClick(View view) { 
        Intent myIntent = new Intent(view.getContext(), BarcodeScanner.class); 
        startActivityForResult(myIntent, 0); 
       } 
      }); 
     } 




    @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 class bovenbouw extends MainActivity{ 

    @Override 
       public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main); 
        Button next = (Button) findViewById(R.id.bovenbutton); 
        next.setOnClickListener(new View.OnClickListener() { 
         public void onClick(View view) { 
          Intent myIntent = new Intent(view.getContext(), Vragen.class); 
          startActivityForResult(myIntent, 0);}});}}} 

代码,我没有看到代码中的任何问题。我可能做错了什么? 谢谢。

+0

我无法找到你的谢胜利按钮 –

+0

尝试推出不同的活动,而不是改变为 –

+1

你应该格式化你的代码相同活动的布局,让人们可以阅读它 –

回答

0

不要针对同一活动制作多个onCreate方法。在同一个onCreate方法中处理所有按钮点击。你可以做的是这样的:

package com.kvprasad.zbarbarcodescanner; 

import android.content.Intent; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.Button; 

public class MainActivity extends AppCompatActivity { 

private Button scannerButton; 

@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); 
} 

@Override 
//Barcodescanner knop 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Button next1 = (Button) findViewById(R.id.scannerButton); 
    next.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      Intent myIntent = new Intent(view.getContext(), BarcodeScanner.class); 
      startActivityForResult(myIntent, 0); 
     } 
    }); 

    Button next2 = (Button) findViewById(R.id.bovenbutton); 
    next.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      Intent myIntent = new Intent(view.getContext(), Vragen.class); 
      startActivityForResult(myIntent, 0);} 

     }); 
    } 
} 
0

你不需要2 onCreate()两个按钮的方法。由于它们都处于相同布局,因此只能使用一种方法在两者上设置onClickListener

public class MainActivity extends AppCompatActivity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     Button next = (Button) findViewById(R.id.scannerButton); 
     next.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view) { 
       Intent myIntent = new Intent(this, BarcodeScanner.class); 
       startActivityForResult(myIntent, 0); 
      } 
     }); 

     Button next1 = (Button) findViewById(R.id.bovenbutton); 
     next.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view) { 
       Intent myIntent = new Intent(this, Vragen.class); 
       startActivityForResult(myIntent, 1); 
       //Make sure the second parameter is not 0, so that you can differentiate between them in onActivityReult method. 
      } 
     }); 
    } 
} 
+0

通过我在你的答案添加的注释错误。你的方法很好。 – Mukesh

0

您不必再创建一个类vragen.class按下bovenbutton。 刚刚创建另一个按钮bovenbutton在主类的OnCreate方法除了scanner_button

@Override 
//Barcodescanner knop 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Button next = (Button) findViewById(R.id.scannerButton); 
    Button vragen = (Button) findViewById(R.id.bovenbutton);//button for vragen 
    next.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      Intent myIntent = new Intent(view.getContext(), BarcodeScanner.class); 
      startActivityForResult(myIntent, 0); 
     } 
    }); 
    //here goes the onclicklistener for vragen button 
    vragen.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      Intent myIntent = new Intent(view.getContext(), Vragen.class); 
      startActivityForResult(myIntent, 0); 
     } 
    }); 
} 
0

你不应该在单个.java文件注册两个活动。您必须创建单独的活动。