добавить изображение из горизонтального представления изображения в вертикальное представление списка при нажатии кнопки

Я пытаюсь создать один горизонтальный и один вертикальный вид сетки с функцией прокрутки.

Я пытаюсь следить за блогом Горизонтальная прокрутка

** В приведенном выше блоге они загружают изображения из папки /drawable.

Реализация исходного кода для горизонтального представления сетки изображений, которую они используют Горизонтальный список

Используя это, я могу прокручивать по горизонтали мои изображения в виде сетки.

Используя Listview, я также могу загружать изображения вертикально.

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

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:background="#fff"
  >

  <com.devsmart.android.ui.HorizontalListView
    android:id="@+id/listview"
    android:layout_width="fill_parent"
    android:layout_height="200dip"
    android:background="#ddd"
  />
  <LinearLayout 
      android:layout_width="fill_parent"
      android:layout_height="300dip">
   <ListView android:layout_width="200dip"   
      android:layout_height="wrap_content"   
      android:id="@+id/myverticalView"
      android:layout_weight="1">  
    </ListView> 
    </LinearLayout>

</LinearLayout>

viewItem.xml

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

  <ImageView
      android:id="@+id/image"
      android:layout_width="150dip"
      android:layout_height="150dip"
      android:layout_alignParentLeft="true"
      android:layout_alignParentTop="true"
      android:layout_marginLeft="20dp"
      android:scaleType="centerCrop"
      />

  <Button
      android:id="@+id/clickbutton"
      android:layout_width="20dp"
      android:layout_height="20dp"
      android:layout_alignBottom="@+id/image"
      android:layout_alignLeft="@+id/image"
      android:layout_marginBottom="56dp"
      android:layout_marginLeft="64dp"
      android:gravity="center"
      android:padding="16dip" />

  <TextView
      android:id="@+id/title"
      android:layout_width="100dip"
      android:layout_height="wrap_content"
      android:layout_alignRight="@+id/image"
      android:layout_below="@+id/image"
      android:layout_marginRight="19dp"
      android:layout_marginTop="14dp"
      android:gravity="center"
      android:textColor="#000" />

</RelativeLayout>

Теперь в MainActivity.java

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        HorizontalListView listview = (HorizontalListView) findViewById(R.id.listview);
        listview.setAdapter(mAdapter);
        }

        private static String[] dataObjects = new String[]{ "Text #1",
        "Text #2",
        "Text #3","Text #4","Text #5"}; 

        private BaseAdapter mAdapter = new BaseAdapter() {

        private OnClickListener mOnButtonClicked = new OnClickListener() {

            @Override
            public void onClick(View v) {
                AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                builder.setMessage("hello from " + v);
                builder.setPositiveButton("Cool", null);
                builder.show();

            }
        };

        @Override
        public int getCount() {
            return image.length;
        }

        @Override
        public Object getItem(int position) {
            return null;
        }

        @Override
        public long getItemId(int position) {
            return 0;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            View retval = LayoutInflater.from(parent.getContext()).inflate(R.layout.viewitem, null);
            // Initialize the views in the layout
            ImageView iv = (ImageView) retval.findViewById(R.id.image);
            int pos = position;
            // Set the views in the layout
            iv.setBackgroundResource(image[pos]);

            TextView title = (TextView) retval.findViewById(R.id.title);
            title.setText("newImage");
            Button button = (Button) retval.findViewById(R.id.clickbutton);
            button.setOnClickListener(mOnButtonClicked);


            return retval;
        }

    };


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

Теперь в приведенном выше коде при нажатии кнопки они могут получить, какая кнопка нажата,

но я хочу знать, какая кнопка изображения нажата, так как я хочу добавить это изображение (нажатое горизонтальное изображение сетки) в представление вертикального списка изображений.

Кто-нибудь может подсказать, как узнать, какая кнопка изображения нажата?


person Java    schedule 19.02.2015    source источник
comment
Вы действительно имели в виду свайп или просто прокрутку? Вы пробовали двухсторонний просмотр?   -  person Shai Levy    schedule 19.02.2015
comment
@Shai Levy, я обновил свой вопрос. Я слежу за блогом http://www.dev-smart.com/archives/34, где они могут прокручивать сетку изображений по горизонтали. Поэтому я чувствую, что если мы внесем некоторые изменения в HorizontalListView.java, мы сможем сделать VerticalListView, чтобы наша сетка изображений прокручивалась по вертикали.   -  person Java    schedule 19.02.2015
comment
Сообщение в блоге, за которым вы следите, относится к 2011 году. Существует множество гораздо лучших решений.... Вы можете увидеть, как эта проблема повторяется здесь, например: stackoverflow.com/questions/12576952/ ..   -  person Shai Levy    schedule 19.02.2015
comment
Это может помочь вам stackoverflow.com/questions/13236123/   -  person Omer Haqqani    schedule 24.03.2017