我需要在onItemClick中获取网格视图的位置
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
switch (position) {
case 0:
Intent i = new Intent(MainActivity.this, TabActivity.class);
startActivity(i);
Position = 0;
break;
case 1:
i = new Intent(MainActivity.this, TabActivity.class);
startActivity(i);
Position = 1;
break;
case 2:
i = new Intent(MainActivity.this, TabActivity.class);
startActivity(i);
Position = 2;
break;
case 3:
i = new Intent(MainActivity.this, TabActivity.class);
startActivity(i);
Position = 3;
break;
case 4:
i = new Intent(MainActivity.this, TabActivity.class);
startActivity(i);
Position = 4;
break;
}
}
});
并在切换循环中将其用于其他Fragment类中
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.activity_city, container, false);
int position = new MainActivity().Position;
ArrayList<CityScreenItem> city = new ArrayList<>();
switch (position) {
case 0:
city.add(new CityScreenItem("Giza", "Giza is good",
R.drawable.dubai));
break;
case 1:
city.add(new CityScreenItem("Dubai", "Dubai is good",
R.drawable.egypt));
break;
}
CityScreenAdapter adapter = new CityScreenAdapter(getActivity(), city);
ListView listView = rootView.findViewById(R.id.list);
listView.setAdapter(adapter);
return rootView;
}
但是当我检查这是由于int position = new MainActivity().Position;
代码而始终无法找到答案时,它始终显示第一种情况。请注意,我在课程开始时确实为Position公开了int
您每次都在创建一个新对象:
int position = new MainActivity().Position;
这会将位置重置为您要设置的位置。将位置设为静态。
public static int POSITION = 0;
这应该可以解决您的问题。如下访问它:
int position = MainActivity.POSITION;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句