繁体   English   中英

单击微调器项目中的项目时如何启动另一个活动

[英]how to start another activity when click on item from spinner items

我有一个微调器,其中包含许多项目,并且想要在我单击这些项目中的一个项目时打开另一个活动

这是布局中的微调器

<Spinner
android:id="@+id/spinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:prompt="@string/title"
android:entries="@array/items"
 />

这是字符串中的项目

<string name="title">select</string>
<string-array name="items">
    <item>open activity one</item>
    <item>open activity two</item>
</string-array>

这是我要使其能够在单击项目时打开另一个活动的代码

Spinner Spinner = (Spinner) findViewById(R.id.spinner);
Spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub
        }

        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1,
                int arg2, long arg3) {
            // TODO Auto-generated method stub
        }

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

    });

尝试这个:

Spinner Spinner = (Spinner) findViewById(R.id.spinner);

Spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

    public void onClick(View v) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onItemSelected(AdapterView<?> arg0, View view,
            int position, long row_id) {
        final Intent intent;
        switch(position){
            case 1:
                intent = new Intent(CurrentActivity.this, TargetActivity1.class);
                break;
            case 2:
                intent = new Intent(CurrentActivity.this, TargetActivity2.class);
                break;
// and so on 
// .....

        }
        startActivity(intent);

    }

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

    }

});

公共类Main2Activity扩展了Activity {

Toolbar mytoolbar;
Spinner mySpinner;

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

    mytoolbar=(Toolbar) findViewById(R.id.toolbar);
    mySpinner=(Spinner) findViewById(R.id.spinner);

    ArrayAdapter<String> myAdaptor=new ArrayAdapter<String>(Main2Activity.this,
            R.layout.custom_spinner_item,
            getResources().getStringArray(R.array.names));

    myAdaptor.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    mySpinner.setAdapter(myAdaptor);

    mySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onItemSelected(AdapterView<?> arg0, View view,
                                   int position, long row_id)
        {
            final Intent intent;
            switch(position)
            {
                case 1:
                    intent = new Intent(Main2Activity.this, MainhomeActivity.class);
                    startActivity(intent);
                    break;
                case 2:
                    intent = new Intent(Main2Activity.this, DateActivity.class);
                    startActivity(intent);
                    break;

// 等等 // .....

            }

        }

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

        }

    });


}

}

您已经具有onItemSelected方法。 因此,只需在其中放置一个带有arg2作为参数的switch-case语句即可。 arg2是项目的位置。 因此,只要您有需要,就打算打开另一个活动。 干杯

String  selection ;
acTV1.setAdapter(arrayAdapter);
acTV1.setCursorVisible(false);
acTV1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        acTV1.showDropDown();
        String selection = (String) parent.getItemAtPosition(position);
        Toast.makeText(getApplicationContext(), selection, Toast.LENGTH_SHORT);

        if(selection.equals("Delete"))
        {
            intent = new Intent(ImageAttachmentActivity.this, DeleteEmployeeActivity.class);
            startActivity(intent);
        }
    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM