如何从 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;