Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法将ParseApplication强制转换为MainActivity_Java_Android_Android Activity_Parse Platform_Logcat - Fatal编程技术网

Java 无法将ParseApplication强制转换为MainActivity

Java 无法将ParseApplication强制转换为MainActivity,java,android,android-activity,parse-platform,logcat,Java,Android,Android Activity,Parse Platform,Logcat,所以我试图将对象保存到Parse.com服务器。但是我得到了11-29 09:05:34.265 23256-23256/ionictech.com.hipku E/AndroidRuntime﹕ 致命异常:main java.lang.ClassCastException:Ionitech.com.hipku.ParseApplication无法强制转换到Ionitech.com.hipku.Content.MainActivity上的Ionitech.com.hipku.Content.Up

所以我试图将对象保存到Parse.com服务器。但是我得到了11-29 09:05:34.265 23256-23256/ionictech.com.hipku E/AndroidRuntime﹕ 致命异常:main java.lang.ClassCastException:Ionitech.com.hipku.ParseApplication无法强制转换到Ionitech.com.hipku.Content.MainActivity上的Ionitech.com.hipku.Content.UploadActivity$2.onClick(UploadActivity.java:196)logcat错误。 每次我按下保存按钮,错误就会弹出。我猜我没选对有人知道另一种方法来选应用程序吗

这是我的密码:

 @Override
        public void onClick(View v) {

            Ads ads = ((MainActivity) getApplicationContext ()).getCurrentAds ();
            //When user hit the save buttton.
            //add data to ads object.
            ads.setTitle (adTitle.getText ().toString ());
            ads.setMessage (adMessage.getText ().toString ());
            //associate ad with the user
            ads.setUser (ParseUser.getCurrentUser ());

            //The multimedia will be saved in the actionbar method

            //Saves all data to Parse.com
            ads.saveInBackground (new SaveCallback () {
                @Override
                public void done(ParseException e) {
                    if (e == null) {
                        (UploadActivity.this).setResult (Activity.RESULT_OK);
                        (UploadActivity.this).finish ();
                    } else {
                        Toast.makeText (UploadActivity.this, "Error saving", Toast.LENGTH_SHORT
                        )
                                .show ();
                    }

                }
            });
这是我的主要活动代码:

public class MainActivity extends ActionBarActivity {

DrawerLayout mDrawerLayout;
ListView mDrawerList;
ActionBarDrawerToggle mDrawerToggle;
String mTitle;
ActionBar ab;

protected Ads ads;

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

    ads = new Ads ();
    ab = getSupportActionBar ();
    ab.setBackgroundDrawable (new ColorDrawable (Color.parseColor ("#ff9900")));

    FragmentTransaction ft = getFragmentManager ().beginTransaction();
    ft.replace (R.id.content_frame, new ContentFeed  ());
    ft.commit ();

    mTitle = (String) getTitle ();

    mDrawerLayout = (DrawerLayout) findViewById (R.id.drawer_layout);

    mDrawerList = (ListView) findViewById (R.id.drawer_list);

    mDrawerToggle = new ActionBarDrawerToggle (this, mDrawerLayout,
            R.string.drawer_open, R.string.drawer_close) {

        @Override
        public void onDrawerClosed(View drawerView) {
            getSupportActionBar ().setTitle (mTitle);
            invalidateOptionsMenu ();
        }

        @Override
        public void onDrawerOpened(View drawerView) {
            getSupportActionBar ().setTitle ("Select a tab");
            invalidateOptionsMenu ();
        }
    };

    mDrawerLayout.setDrawerListener (mDrawerToggle);

    ArrayAdapter<String> adapter = new ArrayAdapter<String> (getBaseContext (),
            R.layout.drawer_list_item, getResources ().getStringArray (R.array.resources));

    mDrawerList.setAdapter (adapter);

    getSupportActionBar ().setHomeButtonEnabled (true);

    getSupportActionBar ().setDisplayHomeAsUpEnabled (true);

    mDrawerList.setOnItemClickListener (new AdapterView.OnItemClickListener () {

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

            Fragment fragment ;


            String[] resources = getResources ().getStringArray (R.array.resources);

            mTitle = resources[position];

            ListDrawerFragment rFragment = new ListDrawerFragment ();

            Bundle data = new Bundle ();

            data.putInt ("position", position);

            rFragment.setArguments (data);

            FragmentManager fragmentManager = getFragmentManager ();

            boolean addToBackStack = true;

            fragment = null;
            switch (position)
            {
                case 0:
                    fragment = new ContentFeed ();
                    break;
                case 1:
                    Intent intent = new Intent (MainActivity.this, LoginActivity.class);
                    startActivity (intent);
                    finish ();
                    break;


            }
            if (fragment != null) {
                FragmentTransaction ft = fragmentManager.beginTransaction ();
                ft.replace (R.id.content_frame, fragment);
                if (addToBackStack == true) {
                    ft.addToBackStack (null);
                }
                ft.commit ();
                mDrawerLayout.closeDrawer (mDrawerList);
            }
        }
    });


}

@Override
protected void onPostCreate(Bundle savedInstanceState) {
    super.onPostCreate (savedInstanceState);
    mDrawerToggle.syncState ();
}

public boolean onCreateOptionsMenu(Menu menu) {
    //Inflate the Menu, this will add items to the actionbar when present
    getMenuInflater ().inflate (R.menu.menu_main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    return mDrawerToggle.onOptionsItemSelected (item) ||
            super.onOptionsItemSelected (item);

}

@Override
public boolean onPrepareOptionsMenu(Menu menu) {
    boolean drawerOpen = mDrawerLayout.isDrawerOpen (mDrawerList);
    menu.findItem (R.id.action_settings).setVisible (!drawerOpen);
    return super.onPrepareOptionsMenu (menu);
 }



   public  Ads getCurrentAds() {
    return ads;
   }



}
公共类MainActivity扩展了ActionBarActivity{
抽屉布局mDrawerLayout;
ListView mDrawerList;
ActionBarDrawerToggle mDrawerToggle;
字符串mTitle;
ActionBar ab;
受保护的广告;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.layout);
ads=新ads();
ab=getSupportActionBar();
ab.setBackgroundDrawable(新的彩色Drawable(Color.parseColor(#ff9900”));
FragmentTransaction ft=getFragmentManager().beginTransaction();
ft.replace(R.id.content_框架,新ContentFeed());
ft.commit();
mTitle=(字符串)getTitle();
mDrawerLayout=(抽屉布局)findViewById(R.id.抽屉布局);
mDrawerList=(ListView)findViewById(R.id.drawer\u列表);
mDrawerToggle=新操作BarDrawerToggle(此,mDrawerLayout,
R.string.drawer\u打开,R.string.drawer\u关闭){
@凌驾
图纸上的公共空白已关闭(视图抽屉视图){
getSupportActionBar().setTitle(mTitle);
失效操作菜单();
}
@凌驾
打开图纸上的公共空白(视图抽屉视图){
getSupportActionBar().setTitle(“选择选项卡”);
失效操作菜单();
}
};
mDrawerLayout.setDrawerListener(mDrawerToggle);
ArrayAdapter=新的ArrayAdapter(getBaseContext(),
R.layout.drawer_列表_项,getResources().getStringArray(R.array.resources));
mDrawerList.setAdapter(适配器);
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
mDrawerList.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
片段;
String[]resources=getResources().getStringArray(R.array.resources);
mTitle=资源[职位];
ListDrawerFragment rFragment=新的ListDrawerFragment();
Bundle data=新Bundle();
data.putInt(“位置”,位置);
rFragment.setArguments(数据);
FragmentManager FragmentManager=getFragmentManager();
布尔addToBackStack=true;
片段=空;
开关(位置)
{
案例0:
fragment=newcontentfeed();
打破
案例1:
意向意向=新意向(MainActivity.this、LoginActivity.class);
星触觉(意向);
完成();
打破
}
if(片段!=null){
FragmentTransaction ft=fragmentManager.beginTransaction();
ft.replace(R.id.content\u frame,fragment);
if(addToBackStack==true){
ft.addToBackStack(空);
}
ft.commit();
mDrawerLayout.closeDrawer(mDrawerList);
}
}
});
}
@凌驾
后期创建时受保护的空(捆绑包savedInstanceState){
super.onpostreate(savedInstanceState);
mDrawerToggle.syncState();
}
公共布尔onCreateOptions菜单(菜单){
//为菜单充气,这将在出现时向操作栏添加项目
getMenuInflater().充气(R.menu.menu\u主菜单,菜单);
返回true;
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
返回MDRAWERTOGLE.onOptionsItemSelected(项目)||
super.onOptionsItemSelected(项目);
}
@凌驾
公共布尔值OnPrepareOptions菜单(菜单){
布尔DrawerLayout=mDrawerLayout.isDrawerOpen(mDrawerList);
menu.findItem(R.id.action\u设置).setVisible(!drawerropen);
返回super.onPrepareOptions菜单(菜单);
}
公共广告{
返回广告;
}
}

getApplicationContext()
方法返回一个
Application
对象,但您正试图将其强制转换为
MainActivity
对象。那是错误的方式。如果你想让你的
广告在应用程序中随处可见,你应该将你的
getCurrentAds()
方法移动到你的自定义
应用程序
类中。(我看到这是一个应用程序)