android imageButton onClick-Methode den Aufruf nicht
EDIT: Posting vollständigen code (mit Ausnahme der XML, da es eine Reihe von lächerlichen Tabelle die Formatierung!)
Bitte ignorieren Sie den code, nicht beziehen sich auf meine Frage! Ich fange gerade an Funktionalität jetzt. Ich mache es sauber später.
Hey Leute! Erste app und schon die erste Frage. Ich hab recherchiert hier eine Weile und in der Regel finden meine Antwort, aber ich habe einen Kerl, der ist wohl sehr offensichtlich. Ich habe ein imageButton-Steuerelement, das scheint nicht zu sein, den Aufruf der Methode zugewiesen.
Meine XML für meine imageButton:
<ImageButton
android:background="@null"
android:onClick="click"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton1"
android:src="@drawable/stats"
android:layout_gravity="center_vertical">
</ImageButton>
Mein code:
package com.talismancs;
import android.app.Activity;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
public class sheet extends Activity{
private String selection;
private String pick;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sheet);
Bundle extras = getIntent().getExtras();
if(extras !=null) {
//Get extra from .main and remove spaces
String pick = extras.getString(selection);
pick = pick.replace(" ", "");
//Convert extra from string to int as ID and make image
int imageResource = getResources().getIdentifier(pick, "drawable", getPackageName());
ImageView iv = (ImageView) findViewById(R.id.imageView1);
final Drawable image = getResources().getDrawable(imageResource);
iv.setImageDrawable(image);
//Populate tv's from string
TextView tv1 = (TextView) findViewById(R.id.textView4);
TextView tv2 = (TextView) findViewById(R.id.textView5);
TextView tv3 = (TextView) findViewById(R.id.textView6);
TextView tv4 = (TextView) findViewById(R.id.textView7);
TextView tv5 = (TextView) findViewById(R.id.textView8);
int arrayresource = getResources().getIdentifier(pick, "array", getPackageName());
String[] CharString = getResources().getStringArray(arrayresource);
tv1.setText(CharString[0]);
tv2.setText(CharString[1]);
tv3.setText(CharString[2]);
tv4.setText(CharString[3]);
tv5.setText(CharString[4]);
}
}
public void onClick(View view) {
Intent i = new Intent(sheet.this, stats.class);
i.putExtra(pick, pick);
startActivity(i);
}
}
Scheint einfach, richtig? Wenn ich auf die imageButton-es bringt absolut nichts!
Bitte helfen.
EDIT: LOGCAT Nach der Auswahl eines spinner-Element, das bringt uns zu dieser Tätigkeit .Blatt
> 03-16 06:15:38.977:
> INFO/ActivityManager(563): Displayed
> activity com.talismancs/.sheet: 766 ms
> 03-16 06:15:42.907:
> DEBUG/dalvikvm(1735): GC freed 448
> objects / 39160 bytes in 58ms 03-16
> 06:15:43.847:
> INFO/NotificationService(563):
> enqueueToast pkg=com.talismancs
> callback=android.app.ITransientNotification$Stub$Proxy@43773720
> duration=1 03-16 06:15:43.877:
> INFO/ActivityManager(563): Starting
> activity: Intent {
> comp={com.talismancs/com.talismancs.sheet} (has extras) } 03-16 06:15:43.917:
> WARN/InputManagerService(563): Window
> already focused, ignoring focus gain
> of:
> com.android.internal.view.IInputMethodClient$Stub$Proxy@43718320
> 03-16 06:15:44.527:
> INFO/ActivityManager(563): Displayed
> activity com.talismancs/.sheet: 646 ms
Nach, dass sich nichts tut wenn ich auf die imageButton -
Yo haben einen einfachen Fehler. android:onClick="onClick" statt android:onClick="Klick"
InformationsquelleAutor talitore | 2011-03-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dein code ist falsch. Sie havent zugewiesen ur-Taste mit ClickListener.
Bitte sehen Sie sich dieses Beispiel-code für, wie es zu implementieren.
Können Sie besuchen diese link weitere Referenz.
OnClickListener
.OP-code ist nicht falsch. außer er/Sie dosent genannt
onCreate()
Können Sie bitte erklären, ein wenig mehr in die Tiefe? Ich versuchte Mathew die Idee, und es Kraft schließt. Vielen Dank so weit!!!
Roth: ja, die Funktion kenne ich, das ist y ich habe ein link für ihn als Referenz.
er ist nicht zu prüfen, welche view angeklickt wird. Das verursachen Problem, wenn er mehr als eine Kontrolle.
InformationsquelleAutor Mathew
Vikias ist rechts, außer, dass man nicht außer Kraft setzen müssen onCreate. Das einzige, was falsch mit der orginal-code liegt in der XML-layout-Datei für den IMageButton.
Der ImageButton erklärt
android:onClick="click"
aber der code in der activity enthalten nicht eine Methodeclick
, sondern ist eine MethodeonClick
was nicht verwendet, in der XML für den ImageButton. Das ist, warum es passiert nichts.InformationsquelleAutor Jonas
Ich bin sicher, zuerst müssen Sie das überschreiben der
onCreate
Methode. Auch Last -, layout-Ressourcen, die Sie verwenden möchten, in IhremActivity
.Sodass Ihr code sollte wie folgt sein:
Auch versuchen, Klassennamen in der standard-Weg. Wie alle Klassennamen beginnen mit einem Großbuchstaben.
Überprüfen diese für weitere Hinweise.
InformationsquelleAutor Vikas Patidar
InformationsquelleAutor Tai Nguyen
Scheint alles ok, nur versuchen, die folgenden änderungen.
dann in onCreate verwenden
Sollte es funktionieren. Else debug-code und sehen Sie, wo Ihre Steuern geht.
@Override
auf der Oberseite der onClick-Methode.InformationsquelleAutor Harshad
Nicht im Zusammenhang mit der OP das problem, aber:
Wenn Sie sehen, dass die Tasten funktionieren nicht in einem Programm, das funktioniert auf einem Gerät (Sie haben MB Quelle, aber Sie sind nicht der Autor),
dies kann, weil die Tasten sind absichtlich gesperrt, von dem Programm.
Es kann getan werden, in mindestens zwei Möglichkeiten:
1) die Schaltflächen sind deaktiviert, indem der code via setEnabled(),
2) es kann eine transparente Ebene oberhalb der Tasten,
3) die transparente Schicht kann auch eine transparente Tätigkeit.
(Der rest ist trivial: eine Bedingung wahr war das Gerät, auf dem das Programm funktioniert, aber ist immer falsch auf dem neuen Gerät... Es wäre seltsam, wenn eine market-Anwendung benahm sich so, doch nicht so unvernünftig, wenn Sie in einem Unternehmen arbeiten, fertigt Geräte.)
InformationsquelleAutor 18446744073709551615