java - 从另一个类获取变量

标签 java android

我必须旋转器,当我启动我的应用程序时,PHP 仅返回旋转器的第一选择的值。 第一个代码是一个类的一部分 (IzboraGrada.java)

public void addListenerOnButton() {
        spinner1=(Spinner) findViewById(R.id.spinner1);
        spinner2=(Spinner) findViewById(R.id.spinner2);
        button=(Button) findViewById(R.id.button);
        str_grad=spinner1.getSelectedItem().toString();
        str_predmet=spinner2.getSelectedItem().toString();

        button.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {


            Intent i=new Intent (v.getContext(), MainActivity.class);
            url = "http://192.168.1.102/test/spinner.php";
            url=url+"?grad="+str_grad+"&predmet="+str_predmet;
            i.putExtra("URL",url);

            startActivity(i);

            }
        });

第二个代码是 MainActivity.class 的一部分,它是有意的。

private void initView() {
        // show progress dialog
        dialog = ProgressDialog.show(this, "", "Loading...");

        String url = "http://192.168.1.102/test/spinner.php";

        Bundle extras = getIntent().getExtras();
        if (extras != null) {
            url = extras.getString("URL");
        }         
        FetchDataTask task = new FetchDataTask(this);
        task.execute(url);
    }

我认为这是因为 str_grad 和 str_predmet 没有在第二类中定义。但是如果我将 str_grad 和 str_predmet 放在第二类中,它们将无法解析为类型。有什么想法该怎么办吗?

最佳答案

看起来您在一开始就在选择项目之前调用此方法,所以我认为问题在于您正在设置 str_grad 的值和str_predmet首次设置时,所选项目是默认项目。这些是 getter 函数而不是监听器。

您需要将这些行移至 onClick() 内或使用onItemSelected()在您的Spinners上设置这些变量值

public void addListenerOnButton() {
    spinner1=(Spinner) findViewById(R.id.spinner1);
    spinner2=(Spinner) findViewById(R.id.spinner2);
    button=(Button) findViewById(R.id.button);


    button.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

       str_grad=spinner1.getSelectedItem().toString();    // move these lines here
       str_predmet=spinner2.getSelectedItem().toString();

        Intent i=new Intent (v.getContext(), MainActivity.class);
        url = "http://192.168.1.102/test/spinner.php";
        url=url+"?grad="+str_grad+"&predmet="+str_predmet;
        i.putExtra("URL",url);

        startActivity(i);

        }
    });

如果我正确理解您的问题,那应该可以解决您的问题。

关于java - 从另一个类获取变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17868036/

相关文章:

java - 向正在运行的 JVM 发送信号

java - 在android中的两个 Activity 之间保持数据更新

android - Text To Speech 如何知道语音何时结束

android - Facebook GraphRequest 获取相册列表或创建一个 android

android - 全息主题和 API 8

Java反射,从方法中提取泛型类型

Java Swing OSX 窗口菜单图标对齐

java - 如何在 Java 中转义 MySQL 语句中的引号

java - 看不到 map task 中的照片

android - 如何在更改选项卡时更改操作栏?