Проблема с запуском нового класса при нажатии на элемент в Gridview Android

#android

#Android

Вопрос:

У меня есть фрагмент кода, в котором при нажатии на элемент изображения в gridview я хочу запустить всплывающее окно нового класса. Однако, это столкнулось, когда я делаю это прямо сейчас. что не так?

Method onCreate():

 public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    GridView gridview = (GridView) findViewById(R.id.gridview);
    mAdapter=new ImageAdapter(this);

    final Context ctx = this.getApplicationContext();

    gridview.setAdapter(mAdapter);

    gridview.setOnItemClickListener(

        new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position,
            long id) {

            // TODO Auto-generated method stub
            Intent i = new Intent(ctx, Popup.class);
            startActivity(i);

            }
        }
    );
  

Class Popup :

 public class Popup extends Activity {


    protected void onCreate(Bundle icicle) {

        super.onCreate(icicle);
        Toast.makeText(getApplicationContext(), "You have selected "  "item",  Toast.LENGTH_SHORT).show();      

    }   

}
  

 <application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".GridView2Activity"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>


    <activity android:name=".Popup"></activity>

</application>
  

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

1. Вы должны получать сообщение об ошибке в logcat , пожалуйста, проверьте DDMS вкладку и обновите свой пост.

2. Сообщение об ошибке 11-09 16:51:32.601: ОШИБКА / AndroidRuntime (2176): android.content. ActivityNotFoundException: Не удается найти явный класс activity {com.GridView2/com.GridView2.GridView2Activity $ Popup}; вы объявили это действие в своем AndroidManifest.xml ?

3. У меня есть <activity android:name=»Popup» android: label =»@string/app_name»> </activity> в androidmanifest.xml

4. Попробуйте изменить android:name="Popup" на android:name=".Popup" . 🙂

5. Хорошо, я попытался изменить имя на .Popup, но он все равно разбился, с тем же сообщением об ошибке, что и выше.

Ответ №1:

Передача контекста приложения обычно создает проблему , понятия не имею, почему так. замените ctx на className.this .

Также поделитесь журналом ошибок и более подробной информацией о сбое , чтобы мы могли вам больше помочь .

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

1. Да, я действительно пробовал это. окончательное намерение i = новое намерение (GridView2Activity.this, Popup.class ); startActivity (i);

Ответ №2:

в вашем манифесте проверьте правильность вашего пакета. возможно, ваш пакет для всплывающего класса отличается от GridView2Activity. если они отличаются, укажите точный путь к пакету

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

1. да, я действительно пробовал это. <activity android:name=»com.GridView2.Popup»></activity>

2. если вы уверены, что манифест объявлен правильно. еще одна вещь, которую вы можете попробовать, это удалить ваше приложение с вашего тестового устройства и повторно развернуть его снова. бывают случаи, когда eclipse неправильно развертывает новые коды, с чем иногда я сталкиваюсь. .