Get the Flash Player to see this player.

time2online Joomla Extensions: Simple Video Flash Player Module
Przycisk Menu

Większość programów korzysta z przycisku menu, więc fajnie wiedzieć jak obsłużyć taki przycisk i za jego pomocą ustawić jakiś napis lub załączyć muzykę w grze. Ja w tym przykładzie pokażę jak pobrać napis edytowany za pomocą przycisku menu i wyświetlić go zamiast standardowego napisu "Hello World!!".

Nie będę się dużo rozpisywał, ale za to nagram film, w którym pokażę jak stworzyć ten projekt od podstaw.

W nowo stworzonym programie wystarczy nadpisać kilka metod. W pliku MainActivity.java wpisujemy następujący kod:

package pl.nstrefa.avrkwiat.menu;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;

public class MainActivity extends Activity {
 private TextView tekst;
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 tekst = (TextView )findViewById(R.id.textView1);
 }

 @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 element) {
 switch (element.getItemId()) {
 case R.id.action_settings:
 startActivity(new Intent(this, Menu_kod.class));
 
 return true;
 // Wstawiamy tutaj pozostałe elementy (jeśli jakieś będą) ...
 }
 return false;
 }
 @Override
 protected void onResume() {
 super.onResume();
 tekst.setText(Menu_kod.wezEditTekst((getBaseContext())));
 }
}


Widzimy, że najważniejsze metody to:

onCreateOptionsMenu(), która jest odpowiedzialna za wysunięcie menu.

onOptionsItemSelected(), która jest odpowiedzialna za wywołanie kodu, który ma coś zrobić po naciśnięciu jednej z opcji menu. W tym przypadku wywołuje kod Menu_kod.java.

onResume(), która pobiera tekst z klasy Menu_kod za pomocą metody wezEditText() i wyświetla ją tam, gdzie wcześniej było "Hello World!!". Metoda onResume() jest wywoływana zawsze, gdy wracamy do programu głównego z innej aktywności.

Należy stworzyć także klasę Menu_kod.java, która wygląda następująco:

package pl.nstrefa.avrkwiat.menu;

import android.content.Context;
import android.os.Bundle;
import android.preference.PreferenceActivity;
import android.preference.PreferenceManager;


public class Menu_kod  extends PreferenceActivity {
 private static final String OPCJA_TEKST = "key_edit" ;
 private static String OPCJA_TEKST_STRING = "wyswietli się jak nic nie działa";
 
 
 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 addPreferencesFromResource(R.xml.ustawienia);
 
 // TODO Auto-generated method stub
 }

 public static String wezEditTekst(Context kontekst) {
 
 return PreferenceManager.getDefaultSharedPreferences(kontekst).getString(OPCJA_TEKST, OPCJA_TEKST_STRING);
 }
}

W tej klasie najważniejsza jest metoda wezEditText(), która pobiera dane z pola edit. Te pole pojawia się, gdy zostanie wywołana ta klasa i jest one zdefiniowane w pliku ustawienia.xml:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
 <EditTextPreference 
 android:key="key_edit" 
 android:title="@string/tytul_edit" 
 android:enabled="true"/>
</PreferenceScreen>

Cały projekt można pobrać klikając tu