I am building my app and when I run it with emulator/my phone its crash before opening even. Here is the code:
Mainactivity.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.marvelx.phonecall.MainActivity">
<Button
android:id="#+id/button"
android:onClick="send"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="105dp"
android:text="Button" />
<EditText
android:id="#+id/et1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignEnd="#+id/button"
android:layout_alignParentTop="true"
android:layout_marginTop="68dp"
/>
<EditText
android:id="#+id/et2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignEnd="#+id/et1"
android:layout_below="#+id/et1"
android:layout_marginTop="37dp"
/>
<EditText
android:id="#+id/et3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="#+id/et2"
android:layout_below="#+id/et2"
android:layout_marginTop="32dp"
/>
</RelativeLayout>
androidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.marvelx.phonecall">
<uses-permission android:name="android.permission.CALL_PHONE" />
<application
android:allowBackup="true"
android:icon="#mipmap/ic_launcher"
android:label="#string/app_name"
android:roundIcon="#mipmap/ic_launcher_round"
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>
</application>
</manifest>
MainActivity.java
package com.example.marvelx.phonecall;
import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
EditText[] number;
#Override
protected void onCreate(Bundle savedInstanceState)
{
number= new EditText[3];
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
number[0]= findViewById(R.id.et1);
number[1]= findViewById(R.id.et2);
number[2]= findViewById(R.id.et3);
}
public void send(View v) {
Call();
}
int index = 0;
public void Call(){
String num = number[index].getText().toString();
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:"+num));
startActivity(intent);
}
}
I've tried rebuilding, cleaning the Project and research on Google, Stack, and Youtube without success.
Where i can also upload the Logcat?
Simply remove the <uses-permission android:name="android.permission.CALL_PHONE"/> from your MainActivity.xml file. I tested it on my side, and it fixed the problem.
Also, consider changing Intent.ACTION_CALL into Intent.ACTION_DIAL. The dial action doesn't require the permission you would remove.
Related
I'm new in android and I just write a test app that should take the texts of the two buttons & change the text of them to each other in the new activity with intent.
but when I run the app and click the first button, it goes to second activity and in the second activity it just showing only the text of that button I just clicked on for both 2 buttons! actually, it should change the text of buttons to each other.(I mean the text of button 1 should display in button 2 and vice versa)
I check every question about the intent here, but my case is waired!!! because it seems everything is right! also, I check the code many times, I don't realize what's wrong!!!!
Thanks.
Here is the code:
MainActivity
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity {
Button buttonone,buttontwo;
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void changeText(View view){
buttonone=(Button) view;
buttontwo=(Button) view;
Intent intent = new Intent(MainActivity.this,SecondActivity.class);
intent.putExtra("button1text",buttonone.getText().toString());
intent.putExtra("button2text",buttontwo.getText().toString());
startActivity(intent);
}
}
activity_main.xml
<?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:id="#+id/activity_main"
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.myb.assignment.MainActivity">
<Button
android:text="One"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true"
android:layout_marginStart="35dp"
android:layout_marginTop="46dp"
android:id="#+id/buttonone"
android:onClick="changeText"/>
<Button
android:text="Two"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="59dp"
android:id="#+id/buttontwo"
android:onClick="changeText"
android:layout_alignBaseline="#+id/buttonone"
android:layout_alignBottom="#+id/buttonone"
android:layout_alignParentEnd="true" />
</RelativeLayout>
SecondActivity
public class SecondActivity extends Activity {
Button button1,button2;
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
}
#Override
public void onResume(){
super.onResume();
button1 = (Button) findViewById(R.id.button1);
button2 = (Button) findViewById(R.id.button2);
String intentData1=getIntent().getExtras().getString("button1text");
String intentData2=getIntent().getExtras().getString("button2text");
button1.setText(intentData2);
button2.setText(intentData1);
}
}
activity_second.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:text=""
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="#+id/button1"
android:layout_alignParentEnd="true"
android:layout_marginEnd="59dp"
android:id="#+id/button2"
/>
<Button
android:text=""
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="34dp"
android:layout_marginTop="46dp"
android:id="#+id/button1"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true" />
</RelativeLayout>
AndroidManifest
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myb.assignment">
<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=".SecondActivity"> </activity>
</application>
</manifest>
In your MainActivity, in changeText(),
buttonone=(Button) view;
buttontwo=(Button) view;
These two lines assign the same button view, to both the buttons.
Insted of this, I recommend doing the following in your onCreate() method after setContentView();
button1 = (Button) findViewById(R.id.button1);
button2 = (Button) findViewById(R.id.button2);
And remove those two lines in changeText().
I'm doing a simple Android application (a measure converter) and I'm using two activities: the first activity is the main application and the second activity it's for display the result.
When I put the value, select the type of conversion (yards to centimetres, for example) and click on the result button, the result only appears in the first activity (not the second activity).
This is my code:
ActivityMain.java
package displayinsecact.project;
import android.app.*;
import android.content.Intent;
import android.os.*;
import android.view.*;
import android.widget.*;
public class ActivityMain extends Activity{
private EditText etxt;
private TextView txtViewRes;
private CheckBox chkBoxYarCen, chkBoxCenYar, chkBoxYarMet, chkBoxMetYar, chkBoxYarPie, chkBoxPieYar;
private ConversorMedidas current;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initialUISetup();
txtViewRes=(TextView)findViewById(R.id.txtViewRes);
}
public void initialUISetup(){
etxt=(EditText)findViewById(R.id.etxt);
txtViewRes=(TextView)findViewById(R.id.txtViewRes);
chkBoxYarCen=(CheckBox)findViewById(R.id.chkBoxYarCen);
chkBoxCenYar=(CheckBox)findViewById(R.id.chkBoxCenYar);
chkBoxYarMet=(CheckBox)findViewById(R.id.chkBoxYarMet);
chkBoxMetYar=(CheckBox)findViewById(R.id.chkBoxMetYar);
chkBoxYarPie=(CheckBox)findViewById(R.id.chkBoxYarPie);
chkBoxPieYar=(CheckBox)findViewById(R.id.chkBoxPieYar);
}
public void exchange(View v){
double aux=0;
if(chkBoxYarCen.isChecked()==true){
current=new convYarCen();
aux=current.yardasCentimetros(Double.parseDouble(etxt.getText().toString()));
}
if(chkBoxCenYar.isChecked()==true){
current=new convYarCen();
aux=current.yardasMetros(Double.parseDouble(etxt.getText().toString()));
}
if(chkBoxYarMet.isChecked()==true){
current=new convYarMet();
aux=current.yardasMetros(Double.parseDouble(etxt.getText().toString()));
}
if(chkBoxMetYar.isChecked()==true){
current=new convYarMet();
aux=current.yardasCentimetros(Double.parseDouble(etxt.getText().toString()));
}
if(chkBoxYarPie.isChecked()==true){
current=new convYarPie();
aux=current.yardasCentimetros(Double.parseDouble(etxt.getText().toString()));
}
if(chkBoxPieYar.isChecked()==true){
current=new convYarPie();
aux=current.yardasMetros(Double.parseDouble(etxt.getText().toString()));
}
txtViewRes.setText(String.valueOf(aux));
}
String contenido;
public void showThirdActivity(View v){
contenido=txtViewRes.getText().toString();
Intent i=new Intent(this, ResultadoActivity.class);
i.putExtra("resultado", contenido);
startActivity(i);
}
}
ResultActivity.java
package displayinsecact.project;
import android.app.Activity;
import android.os.*;
import android.widget.*;
public class ResultadoActivity extends Activity{
TextView tvDatosRecibidos;
String cadena;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.resultado);
tvDatosRecibidos=(TextView)findViewById(R.id.tvDatosRecibidos);
Bundle recogerDatos=getIntent().getExtras();
cadena=recogerDatos.getString("resultado");
tvDatosRecibidos.setText(cadena);
}
}
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="This is the second activity" />
<TextView
android:id="#+id/txtViewData"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Input Data"
/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="#+id/etxt"><requestFocus></requestFocus>
</EditText>
<!--
chkBoxYarCen, chkBoxCenYar, chkBoxYarMet, chkBoxMetYar, chkBoxYarPie, chkBoxPieYar;
-->
<CheckBox
android:id="#+id/chkBoxYarCen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Yards to Centimetres"
/>
<CheckBox
android:id="#+id/chkBoxCenYar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Centimetres to Yards"
/>
<CheckBox
android:id="#+id/chkBoxYarMet"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Yards to Metres"
/>
<CheckBox
android:id="#+id/chkBoxMetYar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Foot to Yards"
/>
<CheckBox
android:id="#+id/chkBoxYarPie"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Yards to Foots"
/>
<CheckBox
android:id="#+id/chkBoxPieYar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Foots to Yards"
/>
<!-- Botones -->
<Button
android:id="#+id/btnOpe"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Exchange"
android:onClick="exchange"
/>
<TextView
android:id="#+id/txtViewRes"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Resultado"
/>
resultado.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Datos recibidos de la actividad anterior"
/>
<TextView
android:id="#+id/tvDatosRecibidos"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="displayinsecact.project"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="7" />
<application
android:icon="#drawable/ic_launcher"
android:label="#string/app_name" >
<activity
android:name=".ActivityMain"
android:label="#string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:label="Resultado Activity"
android:name=".Resultadoctivity">
<intent-filter >
<action android:name=".Resultadoctivity"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
</application>
Sorry for the inconvenient.
Change your code in first activity like this
Intent i=new Intent(this, ResultadoActivity.class);
Bundle b =new Bundle();
b.putString("resultado", contenido);
i.putExtras(b);
startActivity(i);
I made an app it was working perfectly I also had a imageview with scrolling pictures.
All I did was add a button and after that when I run it the app will not show anything. just a plain white blank screen. I have a feeling it could be an intent issue but they seem to be fine with no errors.
Like I said the intents were working fine. I've checked every bit of my code but doesn't seem to load up my Main activity layout.(xml)
Unfortunately I didn't keep a backup . Also LogCat Doest not say anything whatsoever
`
<TextView
android:id="#+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:text="Welcome to iStyle Events"
android:textColor="#FF9500"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="#+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="#+id/textView1"
android:layout_centerHorizontal="true"
android:text=""
android:textAppearance="?android:attr/textAppearanceSmall" />
<LinearLayout
android:id="#+id/linearLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" >
<Button
android:id="#+id/Gallery"
style="?android:attr/buttonStyleSmall"
android:layout_width="88dp"
android:layout_height="wrap_content"
android:textColor="#FF9500"
android:text="#string/Gallery" />
</LinearLayout>
<TextView
android:id="#+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="#+id/textView2"
android:layout_centerHorizontal="true"
android:textColor="#fafad2"
android:text="hello"
android:textAppearance="?android:attr/textAppearanceSmall" />
<Button
android:id="#+id/Services"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="#+id/textView1"
android:layout_alignTop="#+id/linearLayout1"
android:layout_toLeftOf="#+id/linearLayout1"
android:textColor="#FF9500"
android:text="#string/Services" />
<Button
android:id="#+id/Contact"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="#+id/textView1"
android:layout_alignTop="#+id/linearLayout1"
android:layout_toRightOf="#+id/linearLayout1"
android:textColor="#FF9500"
android:text="#string/Contact" />
`
.java =
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class Main extends Activity {
Button service;
Button gallery;
Button contact;
protected void onCreate1(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
service = (Button)findViewById(R.id.Services);
service.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v)
{
Intent intent = new Intent (Main.this, servicesActivity.class);
startActivity(intent);
}
});
gallery = (Button)findViewById(R.id.Gallery);
gallery.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v)
{
Intent intent1 = new Intent (Main.this, galleryActivity.class);
startActivity(intent1);
}
});
contact = (Button)findViewById(R.id.Contact);
contact.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v)
{
Intent intent2 = new Intent (Main.this, contactActivity.class);
startActivity(intent2);
}
});
}
}
Manifest file:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.istyleevents"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="1"
android:targetSdkVersion="16" />
<application
android:allowBackup="true"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
<activity
android:name="com.istyleevents.Main"
android:label="#string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="galleryActivity"></activity>
<activity android:name="servicesActivity"></activity>
<activity android:name="contactActivity"></activity>
</application>
</manifest>
You have a 1 behind the method onCreate. Is it just a copy-paste mistake ? If I remove it, you layout is shown
You have a typo on your onCreate method. It's written as onCreate1. If that's how it's written in the java file and not just a copt&paste error here, that may be your problem.
Check your android:layout_width and android:layout_height and make sure they are not cover other content is my guesss please post the xml file
I'm still very new to this so the solution is probably obvious.
Any way I'm trying to make the buttons in this app open new activities but when I run it, forcecloses. Does anyone know what's wrong? I was going to use something called list view but that didn't use the XML I made for the class.
package com.example.musicbynumbers;
import android.os.Bundle;
import android.app.Activity;
import android.app.ListActivity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ListView;
public class MainMenu extends Activity implements View.OnClickListener {
Button majScales, minHarm, minMel;
ImageButton mainMenu;
#Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_menu);
mainMenu = (ImageButton) findViewById(R.id.imagelogo);
majScales = (Button) findViewById(R.id.majorscalesb);
}
#Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
switch(arg0.getId()){
case R.id.imagelogo:
Intent i = new Intent(MainMenu.this, MainMenu.class);
startActivity(i);
break;
case R.id.majorscalesb:
Intent j = new Intent(MainMenu.this, majorScales.class);
startActivity(j);
break;}
}
}
Layout:
<LinearLayout 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:orientation="vertical"
android:weightSum="80"
tools:context=".MainMenu"
>
<ImageButton
android:id="#+id/imagelogo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="#drawable/ic_launcher"
android:layout_weight="10"
android:gravity="center" />
<Button
android:id="#+id/majorscalesb"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="10"
android:text="Major Scales"
android:gravity="center" />
<Button
android:id="#+id/minormelodicb"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="10"
android:text="Minor Melodic Scales"
android:gravity="center"/>
<Button
android:id="#+id/minorharmonicb"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="10"
android:text="Minor Harmonic Scales"
android:gravity="center"/>
<Button
android:id="#+id/arpeggiosb"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="10"
android:text="Arpeggios"
android:gravity="center" />
<Button
android:id="#+id/chromaticscalesb"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="10"
android:text="Chromatic Scales"
android:gravity="center" />
<Button
android:id="#+id/contraryb"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="10"
android:text="Contrary Motion"
android:gravity="center" />
<Button
android:id="#+id/aboutb"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="10"
android:text="About"
android:gravity="center"
>
</Button>
</LinearLayout>
Manifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.musicbynumbers"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="16" />
<application
android:allowBackup="true"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
<activity
android:name="com.example.musicbynumbers.MainMenu"
android:label="#string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.example.musicbynumbers.majorScales"
android:label="#string/app_name" >
<intent-filter>
<action android:name="com.example.musicbynumbers.majorScales" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
</manifest>
fix your code by this
ImageButton mainMenu;
mainMenu = (ImageButton) findViewById(R.id.imagelogo);
UPDATE:
OK, I found the error. you forgot to set the OnClickListener for every Button or ImageButton
try this
majScales.setOnClickListener(this);
mainMenu.setOnClickListener(this);
For one thing you spelled the intent incorrectly.
Intent j = new Intent("com.exapmle.muscibynumbers.majorScales");
should be
Intent j = new Intent("com.example.musicbynumbers.majorScales");
For another, you have two applications defined.
Without the stack trace it's hard to know what else might be wrong.
So I've been working on a soundboard app for my kids. This is my first app so as you can imagine I very nearly have no idea what I'm doing (noob) so I'm apologizing in advance :-). I'm not sure where my problem is but my splash screen runs no problem but when it tries to load the next activity it force closes. i'm going to include my manifest the java file that is supposed to play the audio and the layout for the buttons which are clickable images. Thanks in advance! Also I would like to set it up where the buttons could play a random sound that relates to the image using soundpool but again with the noobness. I'm not really familiar at all with the errors but I'm seeing java.land.classcastexception: android.widget.imageview as the reason the mymenu activity isn't starting. Hope that helps.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.pnl.thebasics"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="8" />
<application
android:icon="#drawable/sssicon"
android:label="#string/app_name" >
<activity android:label="#string/app_name" android:name=".myMain">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:label="#string/app_name" android:name=".myMenu">
<intent-filter>
<action android:name="com.pnl.thebasics.CLEARSCREEN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
</manifest>
package com.pnl.thebasics;
import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
public class myMenu extends Activity {
#Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
// Hide the title bar
requestWindowFeature(Window.FEATURE_NO_TITLE);
// Go full screen
final Window window = getWindow();
window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.menu);
//these are the buttons that play sounds
//button 1 (sponge bob)
final MediaPlayer mpButtonClick1 = MediaPlayer.create(this, R.raw.sb1);
Button bSpongebob = (Button) findViewById(R.id.sbbutton);
bSpongebob.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
mpButtonClick1.start();
}
});
//button 2 (patrick)
final MediaPlayer mpButtonClick2 = MediaPlayer.create(this, R.raw.pat1);
Button bPatrick = (Button) findViewById(R.id.patbutton);
bPatrick.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
mpButtonClick2.start();
}
});
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:id="#+id/LinearLayout01"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<ImageView
android:id="#+id/sbbutton"
android:layout_width="wrap_content"
android:layout_height="130dp"
android:layout_weight="50"
android:clickable="true"
android:src="#drawable/sbbuttonimage" />
<ImageView
android:id="#+id/patbutton"
android:layout_width="wrap_content"
android:layout_height="130dp"
android:layout_weight="50"
android:clickable="true"
android:src="#drawable/patbuttonimage" />
</LinearLayout>
<LinearLayout
android:id="#+id/LinearLayout02"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="#+id/mrcrabsbutton"
android:layout_width="wrap_content"
android:layout_height="130dp"
android:layout_weight="50"
android:clickable="true"
android:src="#drawable/mrcrabsbuttonimage" />
<ImageView
android:id="#+id/squidwardbutton"
android:layout_width="wrap_content"
android:layout_height="130dp"
android:layout_weight="50"
android:clickable="true"
android:src="#drawable/squidwardbuttonimage" />
</LinearLayout>
<LinearLayout
android:id="#+id/LinearLayout03"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<ImageView
android:id="#+id/planktonbutton"
android:layout_width="wrap_content"
android:layout_height="130dp"
android:layout_weight="50"
android:clickable="true"
android:src="#drawable/planktonbuttonimage" />
<ImageView
android:id="#+id/garybutton"
android:layout_width="wrap_content"
android:layout_height="130dp"
android:layout_weight="50"
android:clickable="true"
android:src="#drawable/garybuttonimage" />
</LinearLayout>
</LinearLayout>
Your Java code is expecting to find a Button object in your layout:
Button bSpongebob = (Button) findViewById(R.id.sbbutton);
But your layout declares that widget to be an ImageView:
<ImageView
android:id="#+id/sbbutton"
An ImageView isn't a Button, and when your Java code tries to force it to be a Button you get the java.lang.ClassCastException.
Two choices to fix:
1) Change your Java code to use ImageView.
2) Change your layout to declare a Button.
Either will accept the click listener you're trying to set. Don't forget you need to make this fix for both widgets in your app.