Domanda

   package woot.wat.wen;

import android.app.Activity;
import android.os.Bundle;
import android.text.Layout;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnKeyListener;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.view.ViewGroup.MarginLayoutParams;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;

public class HmmActivity extends Activity implements OnKeyListener  {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //RelativeLayout Relay=(RelativeLayout) getResources().getLayout(R.layout.main);
        ViewGroup group = (ViewGroup) findViewById(R.id.relativeLayout1);
        TextView tv=(TextView) findViewById(R.id.tv1);
        MarginLayoutParams mapara = new MarginLayoutParams(tv.getLayoutParams());
        mapara.setMargins(225, 260, 120, 120);


        LayoutParams params=new RelativeLayout.LayoutParams(mapara);
        tv.setLayoutParams(params);
        group.setFocusable(true);
        group.setOnKeyListener(this);

        int children = group.getChildCount();
        for (int i = 0; i < children; i++) {

            View child = group.getChildAt(i);
            child.setFocusable(true);
            child.setOnKeyListener(this);


            }



        //tv.setOnKeyListener(this);


    }


    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        // TODO Auto-generated method stub
        if (keyCode == KeyEvent.KEYCODE_BACK &&  event.getRepeatCount() == 0) {
              //    back=true;
                    // do something on back.
            Toast.makeText(this, "Back key pressed", Toast.LENGTH_SHORT);




            System.out.println("WTF");


                    return true;
                }



        else    

            return super.onKeyDown(keyCode, event);
    }


    public boolean onKey(View v, int keyCode, KeyEvent event) {
                if (keyCode == KeyEvent.KEYCODE_BACK /*&& event.getRepeatCount() == 0*/) {
              //    back=true;
                    // do something on back.
                    Log.d("backk", "goingoin backback");






                    return true;
                }

                else
                // TODO Auto-generated method stub
                return super.onKeyDown(keyCode, event);
                //return false;
            }






    }

Come puoi vedere nel codice, sto cercando di fare qualcosa quando viene premuto il tasto posteriore ma i codici Onkey non sembrano mai essere usati. Il programma non sembra mai entrare nel metodo Onkey ogni volta che viene premuto, sia nell'emulatore che nel dispositivo. Qualsiasi idea di cosa sto facendo di sbagliato ..?

Ho messo il codice aggiornato.

Ok ho creato un nuovo progetto pulito.

package you.packag.namespac;

import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.widget.Toast;

public class BlActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

@Override
public boolean onKeyDown(int keyCode, KeyEvent event){
    if(keyCode==KeyEvent.KEYCODE_BACK){
        Toast.makeText(this, "Back key pressed", Toast.LENGTH_SHORT);
        return true; //that is important
    }else 
    return super.onKeyDown(keyCode, event);
}
}

Ancora lo stesso problema. Il brindisi non viene visualizzato. Il flusso/controllo del programma va al reso vero e di return Super dichiarazioni ogni volta che vengono premuti. Sto sbagliando. Per favore aiuto.

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top