2014-10-06 7 views
0

Я пытаюсь запустить действие из другого пакета с тем же проектом. Проблема в том, что я сохраняю ошибки geet, говоря, что он не может найти класс и спрашивает меня, объявил ли я его в своем файле манифеста. Вот файл манифеста для проекта, код для класса и журнал, в котором указано указанное исключение. Два исходных пакета просто называются «ingegneria» и «unisannioportal» или просто рассматривают их «package1» и «package2».Запуск действия из другого пакета

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example" 
android:versionCode="1" 
android:versionName="1.0" > 

<uses-sdk 
    android:minSdkVersion="14" 
    android:targetSdkVersion="19" /> 

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name="unisannioportal.MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name="ingegneria.ElencoAvvisiActivity" 
     android:label="@string/title_activity_elenco_avvisi" > 
    </activity> 
    <activity 
     android:name="ingegneria.AvvisoActivity" 
     android:label="@string/title_activity_avviso" > 
    </activity> 
</application> 

</manifest> 

вот код для основного класса:

package unisannioportal; 



import com.example.R; 

import android.app.Activity; 
import android.app.Fragment; 
import android.app.FragmentManager; 
import android.content.Intent; 
import android.content.res.Configuration; 
import android.os.Bundle; 
import android.support.v4.app.ActionBarDrawerToggle; 
import android.support.v4.view.GravityCompat; 
import android.support.v4.widget.DrawerLayout; 
import android.view.Menu; 
import android.view.MenuInflater; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 

public class MainActivity extends Activity 
{ 
private String titolo; 
private String[] dipartimenti; 

private DrawerLayout menuDrawerLayout; 
private ListView elencoMenuListView; 
private ActionBarDrawerToggle menuDrawerToggle; 

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

    titolo = this.getTitle().toString(); 
    dipartimenti = getResources().getStringArray(R.array.departments_array); 
    menuDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); 
    elencoMenuListView = (ListView) findViewById(R.id.left_drawer); 
    elencoMenuListView.setAdapter(new ArrayAdapter<String>(this, 
      R.layout.drawer_list_item, dipartimenti)); 


    // set up the drawer's list view with items and click listener 
    elencoMenuListView.setAdapter(new ArrayAdapter<String>(this, 
      R.layout.drawer_list_item, dipartimenti)); 


    elencoMenuListView.setOnItemClickListener(new DrawerItemClickListener()); 


    getActionBar().setDisplayHomeAsUpEnabled(true); 
    getActionBar().setHomeButtonEnabled(true); 


    // ActionBarDrawerToggle ties together the the proper interactions 
    // between the sliding drawer and the action bar app icon 
    menuDrawerToggle = new ActionBarDrawerToggle(
      this,     /* host Activity */ 
      menuDrawerLayout,   /* DrawerLayout object */ 
      R.drawable.ic_drawer, /* nav drawer image to replace 'Up' caret */ 
      R.string.drawer_open, /* "open drawer" description for accessibility */ 
      R.string.drawer_close /* "close drawer" description for accessibility */ 
      ) { 
     public void onDrawerClosed(View view) { 
      getActionBar().setTitle(titolo); 
      invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu() 
     } 

     public void onDrawerOpened(View drawerView) { 
      getActionBar().setTitle(titolo); 
      invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu() 
     } 
    }; 
    menuDrawerLayout.setDrawerListener(menuDrawerToggle); 

    if (savedInstanceState == null) 
    { 
     selectItem(0); 
    } 
} 




/*@Override*/ 
public boolean onCreateOptionsMenu(Menu menu) 
{ 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.main, menu); 
    return super.onCreateOptionsMenu(menu); 
} 

@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 (menuDrawerToggle.onOptionsItemSelected(item)) { 
      return true; 
     } 
    return super.onOptionsItemSelected(item); 
} 


/* The click listner for ListView in the navigation drawer */ 
private class DrawerItemClickListener implements ListView.OnItemClickListener 
{ 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) 
    { 
     selectItem(position); 
    } 
} 



private void selectItem(int position) 
{ 

    if(position == 0) 
    { 
     Intent intent = new Intent(this, ingegneria.ElencoAvvisiActivity.class); 
     this.startActivity(intent); 
    } 
    /* // update the main content by replacing fragments 
    Fragment fragment = new PlanetFragment(); 
    Bundle args = new Bundle(); 
    args.putInt(PlanetFragment.ARG_PLANET_NUMBER, position); 
    fragment.setArguments(args); 

    FragmentManager fragmentManager = getFragmentManager(); 
    fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit(); 

    // update selected item and title, then close the drawer 
    mDrawerList.setItemChecked(position, true); 
    setTitle(mPlanetTitles[position]); 
    mDrawerLayout.closeDrawer(mDrawerList);*/ 
} 
+0

сообщение LogCat пожалуйста. –

ответ

1

Вы можете попробовать что-то вроде этого:

  Intent intent = new Intent(Intent.ACTION_MAIN); 
      PackageManager manager = getApplicationContext().getPackageManager(); 
      intent = manager.getLaunchIntentForPackage(YourPackageName); 
      intent.addCategory(Intent.CATEGORY_LAUNCHER);  
      startActivity(); 
0

декларации пакета не содержит ошибок.

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example" 
android:versionCode="1" 
android:versionName="1.0" > 

Но ошибка указана в объявлении активности.

<activity 
    android:name="ingegneria.ElencoAvvisiActivity" 
    android:label="@string/title_activity_elenco_avvisi" > 
</activity> 

, потому что есть одна точка отсутствует перед названием деятельности. должен выглядеть следующим образом:

<activity 
    android:name=".ingegneria.ElencoAvvisiActivity" 
    android:label="@string/title_activity_elenco_avvisi" > 
</activity> 

или

<activity 
    android:name="com.example.ingegneria.ElencoAvvisiActivity" 
    android:label="@string/title_activity_elenco_avvisi" > 
</activity> 
Смежные вопросы