在 Android Studio 中添加 Spinner 时遇到问题

Trouble adding a Spinner in Android Studio

保持历史。跳到编辑。

我在向正在开发的 android 应用程序中添加微调器时遇到问题。我还没有开发用于应用程序的代码,但只是为了做一些测试,我让它发送了一条 toast 消息,让我知道它可以工作。根据此页面:http://developer.android.com/guide/topics/ui/controls/spinner.html 您可以通过在另一个 class.

中调用 OnItemSelected 来使用 User 创建事件
public class SpinnerActivity extends EditJobActivity implements AdapterView.OnItemSelectedListener {
    @Override
    public void onItemSelected(AdapterView<?> parent, View view,
                               int pos, long id) {
        // An item was selected. You can retrieve the selected item using
        // parent.getItemAtPosition(pos)
        Toast.makeText(SpinnerActivity.this, "It worked", Toast.LENGTH_SHORT).show();
    }
    @Override
    public void onNothingSelected(AdapterView<?> parent) {
        // Another interface callback
    }
}

那是它自己的class。我这样称呼它:

    //Prepare the first (Job Discovery) spinner
    Spinner mJobDiscovery = (Spinner) findViewById(R.id.SpinJobDiscovered);
    // Create an ArrayAdapter using the string array and a default spinner layout
    JobDiscoveryAdapter = ArrayAdapter.createFromResource(this,
            R.array.spin_JobDiscoveryHome, android.R.layout.simple_spinner_item);
    // Specify the layout to use when the list of choices appears
    JobDiscoveryAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    // Apply the adapter to the spinner
    mJobDiscovery.setAdapter(JobDiscoveryAdapter);
    mJobDiscovery.setOnItemSelectedListener(this);

但是,我收到此错误: AdapterView 中的 SetOnItemSelectedListener(android...) 无法应用于 (com...Activity)

它要求我将其转换为 (AdapterView.OnItemSelectedListener),但是当我这样做时出现错误,因为我无法将 activity 转换为 OnItemSelectedListener。我在这里错过了什么?我对 Android 编程有点陌生,如果这是一个简单的答案,我很抱歉...

编辑:

在与 Bhush_techidiot 交谈后,他向我介绍了一些有用的资源,但是我在完成实施时遇到了问题。现在我的 SpinnerActivity 暂时看起来像这样:

public class SpinnerActivity extends EditJobActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_edit_job);

        /*for fill your Spinner*/
    List<String> SpinnerArray = new ArrayList<String>();
    SpinnerArray.add("Item 1");
    SpinnerArray.add("Item 2");
    SpinnerArray.add("Item 3");
    SpinnerArray.add("Item 4");
    SpinnerArray.add("Item 5");

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item, SpinnerArray);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    Spinner spinner = (Spinner) findViewById(R.id.SpinJobDiscovered);
    spinner.setAdapter(adapter);

    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1,
                                   int arg2, long arg3) {
            // TODO Auto-generated method stub
            Object item = arg0.getItemAtPosition(arg2);
            if (item != null) {
                Toast.makeText(EditJobActivity.this, item.toString(),
                        Toast.LENGTH_SHORT).show();
            }
            Toast.makeText(EditJobActivity.this, "Selected",
                    Toast.LENGTH_SHORT).show();

        }

        @Override
        public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub

        }
    });
}
}

但我不知道如何从我的 EditJobActivity 调用 SpinnerActivity,所以我收到错误消息:“...不是封闭的 class " 在 EditJobActivity 上。我应该为此微调器制作新布局吗?

检查以下链接。确保你的解决方案尽可能简单,一旦你让简单的解决方案起作用,就不要犹豫尝试复杂的事情 :) 理解扩展和实施 类,你就可以开始了!

  1. Android Spinner - onItemSelected / setOnItemSelectedListener not triggering
  2. setOnItemSelectedListener of Spinner does not call

祝一切顺利!