如何从 class 中获取 int 值并在另一个中使用它
how to take int value from a class and use it in another one
我需要在 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;
}
}
});
并在切换循环中的不同片段class中使用它
@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;
代码但我找不到答案时,它总是显示第一种情况。
备注
我确实在 class
的开头为 Position 创建了一个 public int
您每次都在创建一个新对象:
int position = new MainActivity().Position;
这会将位置重置为您设置的位置。使位置静态。
public static int POSITION = 0;
这应该可以解决您的问题。像下面这样访问它:
int position = MainActivity.POSITION;
我需要在 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;
}
}
});
并在切换循环中的不同片段class中使用它
@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;
代码但我找不到答案时,它总是显示第一种情况。
备注
我确实在 class
您每次都在创建一个新对象:
int position = new MainActivity().Position;
这会将位置重置为您设置的位置。使位置静态。
public static int POSITION = 0;
这应该可以解决您的问题。像下面这样访问它:
int position = MainActivity.POSITION;