如何在应用程序启动时删除第一次吐司?

时间:2013-10-20 02:33:22

标签: android

我正在实现Spinner,我的问题是它在我启动应用程序时显示toast它显示第一个元素。那时我没有从spinner中选择项目。

我喜欢这个。它在应用程序发布时首次显示马来西亚。

在string.xml中

 <string name="country_prompt">choose country</string>

    <string-array name="country_arrays">
        <item>Malaysia</item>
        <item>United States</item>
        <item>Indonesia</item>
        <item>France</item>
        <item>Italy</item>
        <item>Singapore</item>
        <item>New Zealand</item>
        <item>India</item>
    </string-array>


<Spinner
        android:id="@+id/spinner1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true" 
        android:entries="@array/country_arrays"
        android:prompt="@string/country_prompt"

        />

在java文件

setContentView(R.layout.firstactivity);
    sp= (Spinner) findViewById(R.id.spinner1);
    sp.setOnItemSelectedListener(this)

public void onItemSelected(AdapterView<?> parent, View view, int pos,long id) {
        // TODO Auto-generated method stub

        Toast.makeText(parent.getContext(), 
                "OnItemSelectedListener : " + parent.getItemAtPosition(pos).toString(),
                Toast.LENGTH_SHORT).show();

    }

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

    }

;

1 个答案:

答案 0 :(得分:0)

根据我的理解,您不希望Toast第一次运行时显示Activity。即使用户实际上没有选择任何内容,也会在创建onItemSelected时运行Activity

AFAIK,没有办法避免这种情况。但是,您可以轻松地在boolean中设置onCreate()标记并检查onItemSelected中的该标记以决定是否运行代码,然后在onItemSelected中切换标记。

这样的事情

  setContentView(R.layout.firstactivity);
    sp= (Spinner) findViewById(R.id.spinner1);
    sp.setOnItemSelectedListener(this);
    firstRun = true;   // declare this as a member variable (before onCreate())

public void onItemSelected(AdapterView<?> parent, View view, int pos,long id) {
        // TODO Auto-generated method stub
        if (!firstRun)
        {
            Toast.makeText(parent.getContext(), 
                "OnItemSelectedListener : " + parent.getItemAtPosition(pos).toString(),
                Toast.LENGTH_SHORT).show();
        }
        else
        {  firstRun = false;  }

    }