Android: как переключаться с одного занятия на другое, щелкая элементы в ListView - PullRequest
0 голосов
/ 07 октября 2011

Я сделал список меню, содержащий игру, настройки, выход. но нажатие кнопки не приводит меня к желаемой активности, список не работает .. кто-нибудь может помочь мне решить проблему .. будет б благодарю .. да, это элемент управления списком ..

в моем коде есть две ошибки, одна из которых @@ Тип new AdapterView.OnItemClickListener () {} должен реализовывать унаследованный абстрактный метод AdapterView.OnItemClickListener.onItemClick (AdapterView, View, int, long) @@ в LINE1

А другой @@ View не может быть преобразован в тип @@ в LINE 2 «На самом деле я хочу переключаться с одного экрана на другой, когда нажимаю на элемент на экране главного меню»

Вот код главного меню

public class MenuActivity extends Activity {

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.menu);
        ListView menuList = (ListView) findViewById(R.id.list);
        String[] items = {
            getResources().getString(R.string.pla),
            getResources().getString(R.string.sco),
            getResources().getString(R.string.set),
            getResources().getString(R.string.hel),
            getResources().getString(R.string.qui)
        };
        ArrayAdapter < String > adapt = new ArrayAdapter < String > (this, R.layout.menu_items, items);
        menuList.setAdapter(adapt);
        menuList.setOnItemClickListener(new AdapterView.OnItemClickListener() { //LINE 1 error 
            public void onItemClick(AdapterView <? > parent, View itemClicked, //LINE 2 error
                int position, long id) {
                TextView textView = (TextView) itemClicked;
                String strText = textView.getText().toString();
                if (strText.equalsIgnoreCase(getResources().getString(
                    R.string.pla))) {
                    // Game
                    startActivity(new Intent(MenuActivity.this,
                        GameActivity.class));
                } else if (strText.equalsIgnoreCase(getResources().getString(
                    R.string.hel))) {
                    // Help
                    startActivity(new Intent(MenuActivity.this,
                        HelpActivity.class));
                } else if (strText.equalsIgnoreCase(getResources().getString(
                    R.string.set))) {
                    //Settings 
                    startActivity(new Intent(MenuActivity.this,
                        SettingsActivity.class));
                } else if (strText.equalsIgnoreCase(getResources().getString(
                    R.string.sco))) {
                    //  Scores 
                    startActivity(new Intent(MenuActivity.this,
                        ScoresActivity.class));
                }
            }
        });
    }
}

Ответы [ 3 ]

0 голосов
/ 07 октября 2011
ListView lv = ...;
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0,View arg1, int arg2, long arg3) 
{
  //Do Your Stuff
}
});

или вы можете сделать свой собственный адаптер и написать событие нажатия кнопки

0 голосов
/ 26 июня 2013

Эта задача может быть выполнена с использованием одного из основных строительных блоков Android, называемого Intents, и одного из методов public void startActivity (Intent intent), который принадлежит вашему классу Activity.

Намерение - это абстрактное описание операции длябыть выполненным.Его можно использовать с startActivity для запуска Activity, для передачи BroadIntent его любым заинтересованным компонентам BroadcastReceiver и startService (Intent) или bindService (Intent, ServiceConnection, int) для взаимодействия с фоновой службой.

Intentпредоставляет средство для выполнения позднего связывания во время выполнения между кодом в разных приложениях.Его наиболее важное использование - запуск мероприятий, где его можно рассматривать как связующее звено между действиями.По сути, это пассивная структура данных, содержащая абстрактное описание выполняемого действия.

См. Официальные документы - http://developer.android.com/reference/android/content/Intent.html

public void startActivity (Intent intent) - используется для запуска нового действия.

Итак, предположим, у вас есть два класса Activity, и при нажатии кнопки OnClickListener() вы хотите перейти от одного занятия к другому, затем -

  1. PresentActivity - это ваша текущая активность, из которой вы хотите перейти ко второй активности.

  2. NextActivity - это ваша следующая активность, в которой вы хотите выполнитьдвигаться.

Таким образом, намерение будет таким:

Intent(PresentActivity.this, NextActivity.class)

Наконец, это будет полный код

  public class PresentActivity extends Activity {
        protected void onCreate(Bundle icicle) {
            super.onCreate(icicle);

            setContentView(R.layout.content_layout_id);

            final Button button = (Button) findViewById(R.id.button_id);
            button.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                    // Perform action on click   

                    Intent activityChangeIntent = new Intent(PresentActivity.this, NextActivity.class);

                    // currentContext.startActivity(activityChangeIntent);

                    PresentActivity.this.startActivity(activityChangeIntent);
                }
            });
        }
    }

Этот пример связанДля нажатия кнопки вы можете использовать код в любом месте, который написан внутри кнопки OnClickListener() нажатия кнопки в любом месте, где вы хотите переключаться между вашими действиями, как в setOnItemClickListener.

0 голосов
/ 07 октября 2011

использовать намерение

Intent play= new Intent(getApplicationContext(),Play.class);
startActivity(play);

Есть много уроков по меню

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...