Valor do TextField no dialog box, erro

6 respostas
D

Boa tarde,

Estou começando praticamente hoje a tentar desenvolver para Android. E preciso muito da ajuda de vocês.
Meu objetivo ainda está sendo entender sobre a plataforma de desenvolvimento e como funcionado a forma
procedural e declarativa.

Criei um textfield e 3 botões mas uso apenas 1, o objetivo é apenas digitar algo no textfield clicar no botão e aparecer um dialog com o título do valor do textfield, apenas isso.
Mas está ocorrendo um erro na aplicação.

CLASSE

public class AndroidProjectActivity extends Activity{

<a class="mention" href="/u/override">@Override</a>

public void onCreate(Bundle icicle) {

super.onCreate(icicle);

setContentView(R.layout.main);
}

public void MostraMensagem() {

final EditText input1 = (EditText) findViewById(R.id.txtteste); 

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(input1.getText())
		.setCancelable(false)
		.setPositiveButton("Sim", new DialogInterface.OnClickListener() {
			public void onClick(DialogInterface dialog, int which) {
				dialog.cancel();
				
			}
		});
AlertDialog alert = builder.create();
}

}

MAIN.XML


<requestFocus />

LOGCAT

01-22 16:45:30.233: W/KeyCharacterMap(213): No keyboard for id 0

01-22 16:45:30.243: W/KeyCharacterMap(213): Using default keymap: /system/usr/keychars/qwerty.kcm.bin

01-22 16:46:06.583: D/AndroidRuntime(213): Shutting down VM

01-22 16:46:06.583: W/dalvikvm(213): threadid=3: thread exiting with uncaught exception (group=0x4001b188)

01-22 16:46:06.583: E/AndroidRuntime(213): Uncaught handler: thread main exiting due to uncaught exception

01-22 16:46:06.614: E/AndroidRuntime(213): java.lang.IllegalStateException: Could not find a method MostraMensagem(View) in the activity

01-22 16:46:06.614: E/AndroidRuntime(213): 	at android.view.View$1.onClick(View.java:2020)

01-22 16:46:06.614: E/AndroidRuntime(213): 	at android.view.View.performClick(View.java:2364)

01-22 16:46:06.614: E/AndroidRuntime(213): 	at android.view.View.onTouchEvent(View.java:4179)

01-22 16:46:06.614: E/AndroidRuntime(213): 	at android.widget.TextView.onTouchEvent(TextView.java:6541)

01-22 16:46:06.614: E/AndroidRuntime(213): 	at android.view.View.dispatchTouchEvent(View.java:3709)

01-22 16:46:06.614: E/AndroidRuntime(213): 	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)

01-22 16:46:06.614: E/AndroidRuntime(213): 	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)

01-22 16:46:06.614: E/AndroidRuntime(213): 	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)

01-22 16:46:06.614: E/AndroidRuntime(213): 	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)

01-22 16:46:06.614: E/AndroidRuntime(213): 	at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659)

01-22 16:46:06.614: E/AndroidRuntime(213): 	at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107)

01-22 16:46:06.614: E/AndroidRuntime(213): 	at android.app.Activity.dispatchTouchEvent(Activity.java:2061)

01-22 16:46:06.614: E/AndroidRuntime(213): 	at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643)

01-22 16:46:06.614: E/AndroidRuntime(213): 	at android.view.ViewRoot.handleMessage(ViewRoot.java:1691)

01-22 16:46:06.614: E/AndroidRuntime(213): 	at android.os.Handler.dispatchMessage(Handler.java:99)

01-22 16:46:06.614: E/AndroidRuntime(213): 	at android.os.Looper.loop(Looper.java:123)

01-22 16:46:06.614: E/AndroidRuntime(213): 	at android.app.ActivityThread.main(ActivityThread.java:4363)

01-22 16:46:06.614: E/AndroidRuntime(213): 	at java.lang.reflect.Method.invokeNative(Native Method)

01-22 16:46:06.614: E/AndroidRuntime(213): 	at java.lang.reflect.Method.invoke(Method.java:521)

01-22 16:46:06.614: E/AndroidRuntime(213): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)

01-22 16:46:06.614: E/AndroidRuntime(213): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)

01-22 16:46:06.614: E/AndroidRuntime(213): 	at dalvik.system.NativeStart.main(Native Method)

01-22 16:46:06.614: E/AndroidRuntime(213): Caused by: java.lang.NoSuchMethodException: MostraMensagem

01-22 16:46:06.614: E/AndroidRuntime(213): 	at java.lang.ClassCache.findMethodByName(ClassCache.java:308)

01-22 16:46:06.614: E/AndroidRuntime(213): 	at java.lang.Class.getMethod(Class.java:1014)

01-22 16:46:06.614: E/AndroidRuntime(213): 	at android.view.View$1.onClick(View.java:2017)

01-22 16:46:06.614: E/AndroidRuntime(213): 	 21 more

01-22 16:46:06.653: I/dalvikvm(213): threadid=7: reacting to signal 3

01-22 16:46:06.653: E/dalvikvm(213): Unable to open stack trace file /data/anr/traces.txt: Permission denied

6 Respostas

A

Cara, num manjo nada de android (ainda), mas só de olhar o erro dá pra ver que o seu método aparentemente está com um erro de assinatura:
ava.lang.IllegalStateException: Could not find a method MostraMensagem(View) in the activity

Enquanto que o seu código é sem argumentos…

fernandopaiva

coloque seus codigos entre a tag code

veja aqui.

// Class
public class AppSoma extends Activity {
    EditText num1, num2, resultado;
    Button btnCalcular;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);        
        setContentView(R.layout.main);
        
        num1 = (EditText)findViewById(R.id.num1);
        num2 = (EditText)findViewById(R.id.num2);
        resultado = (EditText)findViewById(R.id.resultado);
        btnCalcular = (Button)findViewById(R.id.calcular);
        
        btnCalcular.setOnClickListener(new View.OnClickListener() {
			
			public void onClick(View v) {
				Double n1 = Double.parseDouble(num1.getText().toString());
				Double n2 = Double.parseDouble(num2.getText().toString());
				Double total = n1 + n2;
				resultado.setText(total.toString());
			}
		});
    }
}



// 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="Primeiro número" 
    />

    <EditText
        android:id="@+id/num1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >
        <requestFocus />
    </EditText>

    <TextView        
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Segundo numero" 
    />

    <EditText
        android:id="@+id/num2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" 
    />

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Resultado" 
    />

    <EditText
        android:id="@+id/resultado"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" 
    />

    <Button
        android:id="@+id/calcular"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Calcular" />

</LinearLayout>

Um exemplo simples, mas da pra vc ver como funciona…

t+ e boa sorte.

fernandopaiva

aqui um exemplo do AlertDialog.

// Class
public class AppCompra extends Activity {
	CheckBox checkArroz,checkLeite,checkCarne,checkFeijao,checkCocaCola;
	Button btnCalcular;
	TextView totalView;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        checkArroz = (CheckBox)findViewById(R.id.checkArroz);
        checkLeite = (CheckBox)findViewById(R.id.checkLeite);
        checkCarne = (CheckBox)findViewById(R.id.checkCarne);
        checkFeijao = (CheckBox)findViewById(R.id.checkFeijao);
        checkCocaCola = (CheckBox)findViewById(R.id.checkCocaCola);
                
        btnCalcular = (Button)findViewById(R.id.btnTotal);
        
        btnCalcular.setOnClickListener(new View.OnClickListener() {			
			public void onClick(View v) {				
				
				double total = 0;				
				if(checkArroz.isChecked())
					total += 2.69;
				if(checkLeite.isChecked())
					total += 5.00;				
				if(checkCarne.isChecked())
					total += 10.00;				
				if(checkFeijao.isChecked())
					total += 2.30;				
				if(checkCocaCola.isChecked())
					total += 2.00;	
				
				AlertDialog.Builder alert = new AlertDialog.Builder(AppCompra.this);
				alert.setMessage("Total da Compra: " + total);
				alert.setNeutralButton("Ok", null);
				AlertDialog dialog = alert.create();
				dialog.setTitle("Total da Compra");
				dialog.show();
			}			
		});       
     
    }
}



// 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="Escolha seu produto" 
    />

    <CheckBox
        android:id="@+id/checkArroz"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Arroz (R$ 2,69)" />

    <CheckBox
        android:id="@+id/checkLeite"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Leite (R$ 5,00)" />

    <CheckBox
        android:id="@+id/checkCarne"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Carne (R$ 10,00)" />

    <CheckBox
        android:id="@+id/checkFeijao"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Feijão (R$ 2,30)" />

    <CheckBox
        android:id="@+id/checkCocaCola"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="CocaCola (R$ 2,00)" />

    <Button
        android:id="@+id/btnTotal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Total" />

</LinearLayout>

Outro exemplo simples tbm, mas da pra vc testar e ir assimilando como tudo funciona

t+ e boa sorte.

D

Tentei executar os exemplos acima mas ocorreu o mesmo problema…

ERRO
SORRY!
The application AndroidPrimeiroPrograma (process android.App) has stopped unexpectedly. Please try again

CLASSE
package android.App;

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.widget.*;

public class AndroidProjectActivity extends Activity {
/** Called when the activity is first created. */

EditText txtteste;
EditText resultado;
Button btnPlay;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    
    btnPlay = (Button)findViewById(R.id.btnPlay);
    txtteste = (EditText)findViewById(R.id.txtteste);
    resultado = (EditText)findViewById(R.id.txtresultado);
    
    btnPlay.setOnClickListener(new View.OnClickListener() {
		
		public void onClick(View v) {
			resultado.setText(txtteste.getText());
		}
	});
    
    
}

}

LAYOUT

<?xml version="1.0" encoding="utf-8"?>

<EditText
    android:id="@+id/txtresultado"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:inputType="textPersonName" />

<requestFocus />

STRING

<?xml version="1.0" encoding="utf-8"?>

Hello World, PrimeiroPrograma!
Play
About
Leave
AndroidPrimeiroPrograma

LOG CAT

01-25 02:23:38.818: D/AndroidRuntime(271): Shutting down VM

01-25 02:23:38.818: W/dalvikvm(271): threadid=1: thread exiting with uncaught exception (group=0x4001d800)

01-25 02:23:38.858: E/AndroidRuntime(271): FATAL EXCEPTION: main

01-25 02:23:38.858: E/AndroidRuntime(271): java.lang.RuntimeException: Unable to start activity ComponentInfo{android.App/android.App.AndroidProjectActivity}: java.lang.ClassCastException: android.widget.EditText

01-25 02:23:38.858: E/AndroidRuntime(271): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)

01-25 02:23:38.858: E/AndroidRuntime(271): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)

01-25 02:23:38.858: E/AndroidRuntime(271): 	at android.app.ActivityThread.access$2300(ActivityThread.java:125)

01-25 02:23:38.858: E/AndroidRuntime(271): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)

01-25 02:23:38.858: E/AndroidRuntime(271): 	at android.os.Handler.dispatchMessage(Handler.java:99)

01-25 02:23:38.858: E/AndroidRuntime(271): 	at android.os.Looper.loop(Looper.java:123)

01-25 02:23:38.858: E/AndroidRuntime(271): 	at android.app.ActivityThread.main(ActivityThread.java:4627)

01-25 02:23:38.858: E/AndroidRuntime(271): 	at java.lang.reflect.Method.invokeNative(Native Method)

01-25 02:23:38.858: E/AndroidRuntime(271): 	at java.lang.reflect.Method.invoke(Method.java:521)

01-25 02:23:38.858: E/AndroidRuntime(271): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)

01-25 02:23:38.858: E/AndroidRuntime(271): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)

01-25 02:23:38.858: E/AndroidRuntime(271): 	at dalvik.system.NativeStart.main(Native Method)

01-25 02:23:38.858: E/AndroidRuntime(271): Caused by: java.lang.ClassCastException: android.widget.EditText

01-25 02:23:38.858: E/AndroidRuntime(271): 	at android.App.AndroidProjectActivity.onCreate(AndroidProjectActivity.java:19)

01-25 02:23:38.858: E/AndroidRuntime(271): 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)

01-25 02:23:38.858: E/AndroidRuntime(271): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)

01-25 02:23:38.858: E/AndroidRuntime(271): 	 11 more

01-25 02:26:13.908: I/Process(271): Sending signal. PID: 271 SIG: 9
A

Olá.

Defina o seu MostraMensagem assim:

public void MostraMensagem(View v) {

…

}
D

Deletei o método MostrarMensagem, agora estou tentando digitar algo em um textField, clicar em um botão e passar o valor para outro textfield. Não consigo nem isso !!! Alguém me ajuda

ERRO
SORRY!
The application AndroidPrimeiroPrograma (process android.App) has stopped unexpectedly. Please try again

CLASSE

package android.App;

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.widget.*;

public class AndroidProjectActivity extends Activity {
/** Called when the activity is first created. */

EditText txtteste;
EditText resultado;
Button btnPlay;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    
    btnPlay = (Button)findViewById(R.id.btnPlay);
    txtteste = (EditText)findViewById(R.id.txtteste);
    resultado = (EditText)findViewById(R.id.txtresultado);
    
    btnPlay.setOnClickListener(new View.OnClickListener() {
		
		public void onClick(View v) {
			resultado.setText(txtteste.getText());
		}
	});
    
    
}

}

MAIN.XML

<?xml version="1.0" encoding="utf-8"?>

<EditText
    android:id="@+id/txtresultado"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:inputType="textPersonName" />

<requestFocus />

STRING.XML

<?xml version="1.0" encoding="utf-8"?>

Hello World, PrimeiroPrograma!
Play
About
Leave
AndroidPrimeiroPrograma

LOGCAT

01-28 02:46:39.397: D/AndroidRuntime(276): Shutting down VM

01-28 02:46:39.397: W/dalvikvm(276): threadid=1: thread exiting with uncaught exception (group=0x4001d800)

01-28 02:46:39.428: E/AndroidRuntime(276): FATAL EXCEPTION: main

01-28 02:46:39.428: E/AndroidRuntime(276): java.lang.RuntimeException: Unable to start activity ComponentInfo{android.App/android.App.AndroidProjectActivity}: java.lang.ClassCastException: android.widget.EditText

01-28 02:46:39.428: E/AndroidRuntime(276): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)

01-28 02:46:39.428: E/AndroidRuntime(276): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)

01-28 02:46:39.428: E/AndroidRuntime(276): 	at android.app.ActivityThread.access$2300(ActivityThread.java:125)

01-28 02:46:39.428: E/AndroidRuntime(276): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)

01-28 02:46:39.428: E/AndroidRuntime(276): 	at android.os.Handler.dispatchMessage(Handler.java:99)

01-28 02:46:39.428: E/AndroidRuntime(276): 	at android.os.Looper.loop(Looper.java:123)

01-28 02:46:39.428: E/AndroidRuntime(276): 	at android.app.ActivityThread.main(ActivityThread.java:4627)

01-28 02:46:39.428: E/AndroidRuntime(276): 	at java.lang.reflect.Method.invokeNative(Native Method)

01-28 02:46:39.428: E/AndroidRuntime(276): 	at java.lang.reflect.Method.invoke(Method.java:521)

01-28 02:46:39.428: E/AndroidRuntime(276): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)

01-28 02:46:39.428: E/AndroidRuntime(276): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)

01-28 02:46:39.428: E/AndroidRuntime(276): 	at dalvik.system.NativeStart.main(Native Method)

01-28 02:46:39.428: E/AndroidRuntime(276): Caused by: java.lang.ClassCastException: android.widget.EditText

01-28 02:46:39.428: E/AndroidRuntime(276): 	at android.App.AndroidProjectActivity.onCreate(AndroidProjectActivity.java:19)

01-28 02:46:39.428: E/AndroidRuntime(276): 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)

01-28 02:46:39.428: E/AndroidRuntime(276): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)

01-28 02:46:39.428: E/AndroidRuntime(276): 	 11 more
Criado 22 de janeiro de 2012
Ultima resposta 27 de jan. de 2012
Respostas 6
Participantes 4