non andare in onkeylistener? Non è in grado di capire
-
29-10-2019 - |
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