2016-04-09 4 views
-2

J'écris une application qui affichera un menu de jus dans un vape shop. J'ai l'écran principal qui affiche le nom et un bouton qui a cliqué une fois va envoyer l'utilisateur à un nouvel écran affichant le menu. Je n'arrive pas à configurer le clic du bouton et quand je cours l'application il se bloque après que le bouton est cliquéTentative d'activités multiples via le bouton click

toute contribution serait appréciée!

MainActivity

package com.example.vitoriano_vaz.easybayvapes; 

import android.content.Intent; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.util.Log; 
import android.view.View; 




public class MainActivity extends AppCompatActivity { 

    public void sendMessage(View view){ 
     Intent intent = new Intent(FromActivity.this, ToActivity.class); 
     startActivity(intent); 
    } 


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

    public void startJuiceMenu(View view) { 
     Log.d("MyApp", "button clicked"); 


    } 
} 

activité deuxième fois que le bouton est cliqué

package com.example.vitoriano_vaz.easybayvapes; 

import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 

import java.util.ArrayList; 

public class juiceMenu extends AppCompatActivity { 
    ArrayList<String> juiceMenu = new ArrayList<String>(50); 

    private static String VALUE = "myValue"; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     juiceMenu.add("#1 Blueberry Bombshell"); 
     juiceMenu.add("#2 Richie Rich"); 
     juiceMenu.add("#3 Chiquita"); 
     juiceMenu.add("#4 Afternoon Delight"); 
     juiceMenu.add("#5 Poppin Otters"); 
     juiceMenu.add("#6 Viva La Sangria"); 
     juiceMenu.add("#7 Okole Maluna"); 
     juiceMenu.add("#8 Carmen Miranda"); 
     juiceMenu.add("#9 Pomalade"); 
     juiceMenu.add("#10 Izual"); 
     juiceMenu.add("#11 Butter Stotch "); 
     juiceMenu.add("#12 Blue Bulls"); 
     juiceMenu.add("#13 Grape Ape"); 
     juiceMenu.add("#14 Bruce Juice"); 
     juiceMenu.add("#15 Doc Holiday"); 
     juiceMenu.add("#16 Peachy Keen"); 
     juiceMenu.add("#17 Hula"); 
     juiceMenu.add("#18 New York"); 
     juiceMenu.add("#19 Al Gore"); 
     juiceMenu.add("#20 Lux Charms"); 
     juiceMenu.add("#21 Sailor jack"); 
     juiceMenu.add("#22 Get Him to the Greek"); 
     juiceMenu.add("#23 Key We Lie Chi"); 
     juiceMenu.add("#24 Spring Fling"); 
     juiceMenu.add("#25 Gumby"); 
     juiceMenu.add("#26 Chai-Milk"); 
     juiceMenu.add("#27 Mr. Bean"); 
     juiceMenu.add("#28 50 Shades of Orange"); 
     juiceMenu.add("#29 Blue Waffles"); 
     juiceMenu.add("#30 Enigma"); 
     juiceMenu.add("#31 Mr. Freeze"); 
     //juiceMenu.add("#32 New Flavor"); need to update to get newest flavor 



    } 


} 

Activity_main

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.example.vitoriano_vaz.easybayvapes.MainActivity" 
    android:id="@+id/main_view"> 

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_alignParentTop="true" 
     android:text="Welcome to East Bay Vapes" 
     android:textAllCaps="true" 
     android:textColor="#000000" 
     android:textSize="20sp" 
     android:id="@+id/textView" /> 
    <Button 
     android:id="@+id/juicemenu" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:onClick="sendMessage" 
     android:text="@string/JuiceMenu" 
     android:layout_marginTop="42dp" 
     android:layout_alignParentTop="true" /> 


</RelativeLayout> 

Activity_juice_menu ici j'ai un LinearLayout pour la ArrayList je déclarais en classe juicemenu.java

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.example.vitoriano_vaz.easybayvapes.juiceMenu"> 

    <ListView 
     android:id="@+id/JuiceMenu" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 

     > 

    </ListView> 


</LinearLayout> 

AndroidManifest

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.vitoriano_vaz.easybayvapes"> 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 
     <activity android:name=".MainActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity android:name=".juiceMenu"></activity> 
    </application> 

</ 

Répondre

0

Le Intent que vous construisez doit faire référence à vos propres cours Activity . Le premier paramètre est un Context et le second est le Class du Activity que vous voulez démarrer, il devrait donc être le suivant.

Intent intent = new Intent(this, juiceMenu.class); 
+0

merci, il a fini par travailler! maintenant j'ai juste besoin de remplir mon activity_juice_menu.xml avec les données dans mon ArrayList – CosmoVitoriano

+0

Great. J'allais ajouter un commentaire indiquant que vous avez également besoin d'un appel à 'setContentView (R.layout.activity_juice_menu') dans' juiceMenu.onCreate() 'pour qu'il sache quelle disposition afficher, mais il semble que vous ayez déjà remarqué cela . –

+0

alors une fois que j'ajouterai l'appel de setContentView à mon menu_juice_activité, comment est-ce que j'irais remplir la deuxième activité dans un format de liste – CosmoVitoriano

0

Étant donné que votre question a déjà répondu, je pensais que je vous suggère un moyen plus efficace de peuplant votre tableau pour supprimer ce défaut de votre code. Par exemple, vous pouvez utiliser une ressource de type tableau de ressources. Avec cela, vous ajoutez simplement les valeurs en utilisant une seule ligne de code. Par exemple:

Chaîne [] juiceArray = getResources(). GetStringArray (R.array.JuiceTextArray);

Le tableau se valeurs sont entrées dans votre fichier arrays.xml (trouvé dans le dossier de valeurs) en tant que tel:

<resources 
    xmlns:tools="http://schemas.android.com/tools" 
    tools:ignore="MissingTranslation"> 

    <string-array name="JuiceTextArray" tools:ignore="MissingTranslation"> 
     <item name="Juice1">#1 Blueberry Bombshell.</item> 
     <item name="Juice2">#2 Richie Rich.</item> 
     [etc., etc.] 
    </string-array> 
</resources>