我在我的应用程序中使用了一个查看页器,其中我有许多寻呼机。在此页面中,我有一个文本视图和一个按钮,我希望能够在单击该寻呼机中的按钮时更改一个寻呼机中的文本视图。
我有下面的代码,但是当我单击按钮时,文本不会改变。
@Override
public Object instantiateItem(ViewGroup collection, int position) {
View view = null;
LayoutInflater h = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = h.inflate(R.layout.content, null);
tvName = (TextView) view.findViewById(R.id.tvName);
btnView = (Button) view.findViewById(R.id.viewBTN);
tvName.setText("Original Text")
btnView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
tvName.setText("new Test")
}
});
collection.addView(view);
return view;
}
您可以创建一个 TextView 数组。 并使用数组中的文本视图作为特定位置。这是完整的代码。
private TextView[] mTextVIews;
private final LayoutInflater layoutInflater;
private Context mContext;
ArrayList<String> mList;
public MyAdapter(Context mContext, ArrayList<String> mList) {
layoutInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
this.mContext = mContext;
this.mList = mList;
mTextVIews = new TextView[mList.size()];
}
@Override
public int getCount() {
return mList.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == ((View) object);
}
@Override
public Object instantiateItem(ViewGroup container, final int position) {
View view = layoutInflater.inflate(R.layout.My_layout, container, false);
btnView = (Button) view.findViewById(R.id.viewBTN);
tvName = (TextView) view.findViewById(R.id.tvName);
mTextVIews[position] = tvName;
btnView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mTextVIews[position].setText("new Test");
}
});
container.addView(view);
return view;
}
在 clickListener
中使用 view.findViewById(R.id.tvName);
只需将这一行放在
view.btnView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
view.tvName.setText("new Test")
}
});
在该页面的 java 文件中使用相同的代码。 示例 如果您的第一页被命名为 page1.java则在该 java 文件中进行更改。有关查看页的更多详细信息,您可以访问 badassandroiddevlopers.blogspot.in 。