#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 неправильно развертывает новые коды, с чем иногда я сталкиваюсь. .