解决方案 »

  1. 参数不对吧,setclass第一个参数是用当前所在activity.this,后个参数是要跳转的class
      

  2. intent.setClass(getActivity(), OtherActivity.class);
      

  3. 最新的ADT版本在穿件项目时就会多创建一个fragment.xml,所以如果按照方法说明和视频教程,我觉得应该是这样写,但还是不行····试过你提的方法,改不了那个错误···谢了
      

  4. 按照你的方法终于改正了这个错误了,谢谢!但我不太明白,为什么我这样指定确不行呢?
    刚编译了一下,还是出现那个空指针异常,这又是那个的异常···Activity01的代码如下:package weo.activity01;import android.support.v7.app.ActionBarActivity;
    import android.support.v4.app.Fragment;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.LayoutInflater;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.view.ViewGroup;
    import android.widget.Button;
    public class Activity01 extends ActionBarActivity { @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_activity01);
    if (savedInstanceState == null) {
    getSupportFragmentManager().beginTransaction()
    .add(R.id.container, new PlaceholderFragment()).commit();
    }
    } @Override
    public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity01, menu);
    return true;
    } @Override
    public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();
    if (id == R.id.action_settings) {
    return true;
    }
    return super.onOptionsItemSelected(item);
    } /**
     * A placeholder fragment containing a simple view.
     */
    public static class PlaceholderFragment extends Fragment { public PlaceholderFragment() {
    } @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
    Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_activity01,
    container, false);
    Button myButton = (Button)rootView.findViewById(R.id.myButton);
    myButton.setOnClickListener(new MyButtonListener());
    return rootView;
    }
    class MyButtonListener implements OnClickListener{ @Override
    public void onClick(View v) {
    // TODO Auto-generated method stub
    //生成一个Intent对象
    Intent intent = new Intent();
    intent.setClass(getActivity(), OtherActivity.class);
    Activity01.PlaceholderFragment.this.startActivity(intent);
    } }
     
    }
    }错误信息:
      

  5. Activity01.PlaceholderFragment.this.startActivity(intent);
    改成
    Activity01.this.startActivity(intent);
      

  6. 应该是因为Activity01.PlaceholderFragment.this这个不是class,你可以再getActivity().startActivity(intent),试试看可不可以
      

  7. intent.setClass(context,class); 第一个参数需要继承自context类的,就可以了
      


  8. Activity01和PlaceholderFragment都是class啊,不过再PlaceholderFragment都不行,试过了
      


  9. 我也知道要继承context类,但就是不知道该怎么写。如果我写为intent.setClass(Activity01.PlaceholderFragment.this, OtherActivity.class); 就会说setClass不能用
    如果写为intent.setClass(getActivity(), OtherActivity.class); 语法上没错误,但编译时空指针出错,我猜应该是找不到正确的context类。我上网查了一下,说可以指定全路径,但怎么指定,如果指定全路径会不会显得代码太长了?我这个context该怎么写呢?在此谢谢各位大虾的帮助
      


  10. Activity01和PlaceholderFragment都是class啊,不过再PlaceholderFragment都不行,试过了你的PlaceholderFragment是继承Activity?还是Fragment?而且你引用错了...我是回复再getActivity().startActivity(intent)......
      

  11. 你使用的是内部类,完全可以在外部类定义一个全局的context,在内部类中直接使用,或者把context传递到内部类中
      


  12. Activity01和PlaceholderFragment都是class啊,不过再PlaceholderFragment都不行,试过了你的PlaceholderFragment是继承Activity?还是Fragment?而且你引用错了...我是回复再getActivity().startActivity(intent)......问题好严重,但还是谢谢了。我再研究研究
      

  13. 你打印下Activity01.PlaceholderFragment.this,看看这个this还是Context的子类对象不?检查下你写的这个this的作用域
      

类似问题 »