1 Button mit 2 aktionen

  • Antworten:11
Gelöschter Account
  • Forum-Beiträge: 35

16.05.2014, 20:57:21 via Website

Hallo,
ich bin gerade an einer kleinen App welche über einen ImageButton und ein textfield verfügt.
Mein Ziel ist es, dass bei Berührung des Buttons ein Sound abgespielt ist und in der TextView immer eine Zahl nach oben gezählt wird (also 1,ersetzt durch 2 dann 3 usw)
Wenn ich aber das fertige Programm ausprobiere wird nur die mp3 abgespielt aber nichts hochgezählt.

Kann mir jemand helfen ? :D

Danke im voraus :)

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

16.05.2014, 21:20:27 via Website

Ohne Code kann dir neimand helfen.
Wir besitzen keine Glaskugel... :)

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Gelöschter Account
  • Forum-Beiträge: 35

16.05.2014, 21:24:41 via Website

import android.app.Activity;
import android.media.Image;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.TextView;

public class MainActivity extends Activity {
private int zaehler;
int tw = 1;

public MediaPlayer mp;
ImageButton vuvuneu;


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

    vuvuneu = (ImageButton) findViewById(R.id.vuvuneu);
    vuvuneu.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            MediaPlayer mp = MediaPlayer.create(getApplicationContext(), R.raw.vuvuneu);
            mp.start();

        }
    });

}
public void zaehlOnClick(View view) {
    TextView tw = (TextView)findViewById(R.id.textView1);

    zaehler++;
    tw.setText(String.valueOf(zaehler));

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.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();
    if (id == R.id.action_settings) {
        return true;
    }
    return super.onOptionsItemSelected(item);
}

}

Antworten
Gelöschter Account
  • Forum-Beiträge: 35

16.05.2014, 21:27:16 via Website

Das ist der komplette code von dem Programm ;)
Dieses vuvuneu ist nur der Name der mp3 Datei.

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

16.05.2014, 21:27:32 via Website

Du hast zweimal die Variable tw Definiert.
Einmal als Integer und dann als TextView.
Ausserdem gibt es für den Zählerbutton kein OnClick listener. D.h die Funktion wird nie ausgeführt, am besten du tust den Code oben in den Listener rein.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Gelöschter Account
  • Forum-Beiträge: 35

16.05.2014, 22:13:33 via Website

vuvuneu.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            MediaPlayer mp = MediaPlayer.create(getApplicationContext(), R.raw.vuvuneu);
            mp.start();

        }

        public void zaehlOnClick(View view) {
            TextView tw = (TextView) findViewById(R.id.textView1);

            zaehler++;
            tw.setText(String.valueOf(zaehler));
        }

        @Override
        public boolean onCreateOptionsMenu(Menu menu) {

            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.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();
            if (id == R.id.action_settings) {
                return true;
            }
            return super.onOptionsItemSelected(item);
        }


    });
}

}

Antworten
Gelöschter Account
  • Forum-Beiträge: 35

16.05.2014, 22:14:52 via Website

Es sollte klappen, tut es aber nicht. die letzte zeile "onOptionsItemSelected" ist tot geschrieben.

Habe ich vielleicht was übersehen ? :)

Antworten
Michele
  • Forum-Beiträge: 1.525

16.05.2014, 22:20:07 via Website

ANDROID DEV

Es sollte klappen, tut es aber nicht. die letzte zeile "onOptionsItemSelected" ist tot geschrieben.

Habe ich vielleicht was übersehen ? :)

Hallo.

Pascal P. hat dir alles wichtige gesagt.
So wird das nie klappen.

Lg

Antworten
Gelöschter Account
  • Forum-Beiträge: 35

16.05.2014, 22:29:57 via Website

OK, ich probiere weiter,

Danke an alle

Mfg,

-AD

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

17.05.2014, 07:39:21 via Website

Das sollte egal sein, das sit nölich richtig, wenn nämlich die Id "Action_settings" betrögt wird true zurückgegeben sonst den Wert die die Superklasse zurückgibt.
Hast du in diese Funktion den Code geschrieben.
Soll beim click auf den Menüpunkt irgend etwas bestimmtes pasieren?

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Gelöschter Account
  • Forum-Beiträge: 35

17.05.2014, 09:15:53 via Website

Es klappt ich musste eigentlich kaum etwas verändern, sondern nur eine einzige Zeile : zaehlOnClick(v);

Die musste einfach nur in den OnCLickListener wie du gesagt hast :) Nochmals danke ;)

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

17.05.2014, 09:39:42 via Website

Kein Problem ;)

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten