2012-03-06 133 views
0

我有以下代码,我需要填写if(pos == 1){??????????},以便我可以在选择微调控制器中的第一个位置时切换活动。我的新灵活性名称是Route1.java。 如何在我的微调器中选择位置1时编写切换到Route1.java的代码。使用微调器切换活动

import android.app.Activity; 
import android.content.Context; 
import android.content.Intent; 
import android.net.Uri; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemSelectedListener; 
import android.widget.Toast; 
import android.Manifest.permission; 

public class MyOnItemSelectedListener extends Activity 
     implements OnItemSelectedListener { 

    public void onItemSelected(AdapterView<?> parent, 
      View view, int pos, long id) { 
     if (pos == 1) { 
     } else { 
      Toast.makeText(parent.getContext(), 
        "Your route is " 
        + parent.getItemAtPosition(pos).toString(), 
        Toast.LENGTH_LONG).show(); 
     } 
    } 

    public void onNothingSelected(AdapterView parent) { 
     // Do nothing. 
    } 
} 

上述类此类用于

import java.lang.reflect.Array; 
import android.R.array; 
import android.app.Activity; 
import android.content.Context; 
import android.content.Intent; 
import android.net.Uri; 
import android.os.Bundle; 
import android.view.View; 
import android.webkit.WebView; 

import android.widget.AbsSpinner; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemSelectedListener; 
import android.widget.ArrayAdapter; 
import android.widget.Button; 
import android.widget.Spinner; 
import android.widget.Toast; 


public class cnycentro extends Activity {   

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.cnycentro); 

     Spinner spinner = (Spinner) findViewById(R.id.spinner); 
     ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
       this, R.array.routes, android.R.layout.simple_spinner_item); 
     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     spinner.setAdapter(adapter); 

     spinner.setOnItemSelectedListener(new MyOnItemSelectedListener()); 
    } 
} 

回答

0

您应该意图和更具体明确的意图阅读起来。

为了明确地推出新的活动(比如一个创建)的语法是:

Intent newActivity = new Intent(this, Route1.class); 
startActivity(newActivity); 

还要确保新的活动添加到Android清单:

<activity android:name=".Route1"></activity> 

编辑:

+1在您的听众不延长活动,而不是简单地写

public class MyOnItemSelectedListener implements OnItemSelectedListener { 
    .... 
} 

如果您的活动或监听器太大,并且会降低可读性以将其内联编写,则可以通过此方式进行编写。

0
  1. MyOnItemSelectedListener()不需要是单独的类,它绝对不应该从Activity继承。
  2. 更改您的代码是这样的:

    OnItemSelectedListener listener = new OnItemSelectedListener(){ 
    @Override 
    public void onItemSelected(AdapterView<?> parent, View view, 
         int position, long id) { 
        //do you really want 1 here or 0? 
        if (position == 1) { 
         view.getContext().startActivity(new Intent(view.getContext().getApplicationContext(),Route1.class)); 
        }else{ 
         Toast.makeText(parent.getContext(), "Your route is " + 
            parent.getItemAtPosition(position).toString(), Toast.LENGTH_LONG).show(); 
    
        } 
    } 
    @Override 
    public void onNothingSelected(AdapterView<?> arg0) { 
        // TODO Auto-generated method stub 
    
    } 
    }; 
    spinner.setOnItemSelectedListener(listener);