Задать вопрос
@run182

Почему android за запускает по клику активити?

public class AllPlacesActivity extends ListActivity {
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_places);

        // Hashmap for ListView
        productsList = new ArrayList<HashMap<String, String>>();

        // Загружаем продукты в фоновом потоке
        new LoadAllPlaces().execute();

        // получаем ListView
        ListView lv = getListView();

        // на выбор одного продукта
        // запускается Edit Product Screen
        lv.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                                    int position, long id) {
                // getting values from selected ListItem
                String ID = ((TextView) view.findViewById(R.id.ID)).getText().toString();

                // Запускаем новый intent который покажет нам Activity
                Intent in = new Intent(AllPlacesActivity.this, EditPlaceActivity.class);
                // отправляем pid в следующий activity
                in.putExtra(ID, ID);

                // запуская новый Activity ожидаем ответ обратно
                startActivity(in);
            }
        });
    }

   ...
}


activity_places.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">


        <fragment
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/fragment"
            tools:layout="@layout/top_panel" />


        <ListView
            android:id="@android:id/list"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>


    </LinearLayout>
</LinearLayout>


place_item.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

        <LinearLayout
            style="@style/placeItem">
            <View
                android:layout_width="match_parent"
                android:layout_height="1dp"
                android:background="#eff3f3"/>
            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content">
                <TextView
                    android:id="@+id/ID"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:visibility="gone"/>
                <TextView
                    style="@style/placeName"
                    android:id="@+id/ADDRESS"
                    android:text="BUBBLE BOOM KENIGSBERG | 1км | Победы площадь 10 2 этаж, ТЦ Кловер" />
                <LinearLayout
                    style="@style/placeItemButton">
                    <ImageButton
                        style="@style/placeItemEnter"/>
                    <View
                        style="@style/placeButtonBorder"
                        />
                    <LinearLayout
                        style="@style/placeItemPeoples"
                        android:gravity="center">
                        <ImageButton
                            style="@style/placeItemPeoplesImg"/>
                        <TextView
                            style="@style/placeItemPeoplesTxt"
                            android:text="5"/>
                    </LinearLayout>
                </LinearLayout>
            </RelativeLayout>
            <View
                android:layout_width="match_parent"
                android:layout_height="1dp"
                android:background="#d5d8d8"/>
            <View
                android:layout_width="match_parent"
                android:layout_height="1dp"
                android:background="#e5e9e9"/>
        </LinearLayout>

</LinearLayout>
  • Вопрос задан
  • 186 просмотров
Подписаться 1 Оценить 3 комментария
Решения вопроса 2
@Elysey
Intent in = new Intent(getApplicationContext(), EditPlaceActivity.class);

тут не getApplicationContext() должен быть, а контекст активити, откуда ты хочешь вызвать EditPlaceActivity

Например:
Intent in = new Intent(MainActivity.this, EditPlaceActivity.class);
Ответ написан
@run182 Автор вопроса
Дело было в ImageButton, когда поменял их на View, клики на позициях стали работать.
stackoverflow.com/questions/1121192/android-custom...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@davidnum95
По моему нельзя запускать активити из общего контекста приложения.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы