Android: переключение между двумя действиями

#android

#Android

Вопрос:

У меня есть этот код :

     Button groupsButton = (Button)findViewById(R.id.groupsButton);
    groupsButton.setOnClickListener(new OnClickListener() 
    {
        public void onClick(View v)
        {
            Intent myintentGroups=new Intent(CreateMessageActivity.this, GroupsActivity.class).putExtra("<StringName>", "Value");
            startActivityForResult(myintentGroups, 3);
        }
    });
  

и теперь я хочу написать onActivityResult, я попытался добавить этот код внутри onClick, но он не работает (Eclipse выдает мне ошибку):

 @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub
        super.onActivityResult(requestCode, resultCode, data);
        String result_string=data.getStringExtra("<StringName>");
    }
  

Является ли код для записи onActivityResult неправильным или, может быть, я помещаю его не в то место?

** Редактировать: ** код :

         Button groupsButton = (Button)findViewById(R.id.groupsButton);
    groupsButton.setOnClickListener(new OnClickListener() 
    {
        public void onClick(View v)
        {
            Intent myintentGroups=new Intent(CreateMessageActivity.this, GroupsActivity.class).putExtra("<Came From Create Message>", "Value");
            startActivityForResult(myintentGroups, 3);
        }
    });

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub
        super.onActivityResult(requestCode, resultCode, data);
        String result_string=data.getStringExtra("<StringName>");
    }
  

Редактировать 2: ошибки:
Несколько маркеров в этой строке
— Синтаксическая ошибка в токене «(«, ; ожидается
— void является недопустимым типом для переменной
onActivityResult
— Синтаксическая ошибка в токене «)», ; ожидается
— Ожидается синтаксическая ошибка в токене «,», ;
— Ожидается синтаксическая ошибка в токене «,», ;

Ответ №1:

onActivityResult должен быть помещен в класс Activity, который содержит onClick, а не в фактический onClick. CreateMessageActivity.this в новом намерении укажет, к какому действию должен быть возвращен результат.

Комментарии:

1. Eclipse выдает ошибку: void является недопустимым типом для переменной onActivityResult

2. о, тогда вы, вероятно, не помещаете его в нужное место… он должен быть в теле вашего класса на том же уровне (родном), что и onCreate

3. @Dr.Dredel — это в классе Activity, который содержит onClick

4. хорошо… ваш опубликованный код верен … итак, вам нужно опубликовать больше кода, потому что, как есть, вы не должны видеть никаких ошибок

5. Просто для ясности onActivityResult должен быть отдельной функцией в классе Activity. Он не должен быть включен ни в одну функцию, уже имеющуюся в классе.

Ответ №2:

Вы уверены, что возвращаетесь к этому действию? Что вы делаете в своем GroupsActivity.class ? Как вы выходите из него? Способ вернуться к ЭТОМУ действию — вызвать finish() в GroupsActivity.class … тогда ты должен получить свою веревочку. Если вы вызываете другой startActivity() в вашем GroupsActivity.class тогда вы на самом деле не возвращаетесь «назад» к ЭТОМУ, а переходите к другому его экземпляру.

кроме того, в отображаемом коде вы ничего не делаете со строкой… вы уверены, что это уже не работает правильно?