Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在StackView中实现onClickListner_Java_Android_Android Fragments - Fatal编程技术网

Java 如何在StackView中实现onClickListner

Java 如何在StackView中实现onClickListner,java,android,android-fragments,Java,Android,Android Fragments,我希望在我的stackView中添加一个onclickListner,以便它呈现另一个片段 这些片段将是一个包含textView和imageView的简单页面。 将有10多个片段,每个片段对应StackView中的一个条目 stackView是一个片段,因此它可能类似于从另一个片段调用一个片段 我的代码是: Stack_Adapter.java public class Stack_Adapter extends BaseAdapter { ArrayList<Stack_Items&g

我希望在我的stackView中添加一个onclickListner,以便它呈现另一个片段

这些片段将是一个包含textView和imageView的简单页面。 将有10多个片段,每个片段对应StackView中的一个条目

stackView是一个片段,因此它可能类似于从另一个片段调用一个片段

我的代码是:

Stack_Adapter.java

public class Stack_Adapter extends BaseAdapter {

ArrayList<Stack_Items> arrayList;
LayoutInflater inflater;
ViewHolder holder = null;

public Stack_Adapter(Context context, ArrayList<Stack_Items> arrayList) {
    this.arrayList = arrayList;
    this.inflater = LayoutInflater.from(context);
}

@Override
public int getCount() {
    return arrayList.size();
}

@Override
public Stack_Items getItem(int pos) {
    return arrayList.get(pos);
}

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

@Override
public View getView(int pos, View view, ViewGroup parent) {
    if (view == null) {
        view = inflater.inflate(R.layout.stack_layout, parent, false);
        holder = new ViewHolder();

        holder.text = (TextView) view.findViewById(R.id.textView1);
        holder.image = (ImageView) view.findViewById(R.id.imageView1);
        view.setTag(holder);
    } else {
        holder = (ViewHolder) view.getTag();
    }

    holder.text.setText(arrayList.get(pos).getName());
    holder.image.setBackgroundResource(arrayList.get(pos).getImage());

    return view;
}

public class ViewHolder {
    TextView text;
    ImageView image;
} }
事件\u布局

<StackView
    android:id="@+id/stackView1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:animateLayoutChanges="true" >
</StackView>
<ImageView
    android:id="@+id/imageView1"
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:layout_centerHorizontal="true" />

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_below="@+id/imageView1"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="5dp"
    android:textColor="#FFFFFF" />

堆栈布局

<StackView
    android:id="@+id/stackView1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:animateLayoutChanges="true" >
</StackView>
<ImageView
    android:id="@+id/imageView1"
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:layout_centerHorizontal="true" />

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_below="@+id/imageView1"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="5dp"
    android:textColor="#FFFFFF" />

因为有这么多的页面&都很相似,所以我想通过在strings.xml中链接东西来找到一个简单的替代方法,比如链接堆栈和all

编辑-1


更新的EventsFragments.java

StackView
间接继承自,这意味着您可以在其上使用,就像您在
ListView

中使用更新的EventsFragments.java一样,请查看。stackView.getSelectedItemPosition()始终返回0,那么解决方法是什么。使用
位置
说明有没有任何方法可以减少创建大量碎片页面,包括它们的布局以及.java文件(更动态的文件),在页面上以字符串数组形式查找信息,因为页面上只有一个textView和一个ImageView,所以您可以始终创建一个相同片段的实例,提供您想要在捆绑包中设置的信息。您可以详细说明,或者在代码中添加一些解释吗?