当前位置: 首页 > 知识库问答 >
问题:

无法启动另一个包中的活动(从意图)

李景天
2023-03-14

我有一个活动,可以在收藏夹列表中添加书签。每个宠儿都有一个按钮。当我点击那个按钮时,我必须进入那个特定的活动。但它显示了一个错误。应用程序不会崩溃,但书签活动不会从单击开始。

以下是“收藏夹”活动的代码

public class FavouritesActivity extends Activity {

private TextView mEmptyText;
private LinearLayout mBookmarkLayout;

private Context mContext;

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

    mContext = this;

    mEmptyText = (TextView) findViewById(R.id.empty_textview);
    mBookmarkLayout = (LinearLayout) findViewById(R.id.bookmark_insert_point);

    getAllKeys();

}

private void getAllKeys()
{
    SharedPreferences sp = this.getSharedPreferences("favs", MODE_PRIVATE);
    Map<String,?> keys = sp.getAll();

    int count = 0;
    for(Map.Entry<String,?> entry : keys.entrySet())
    {
        String value = entry.getValue().toString();
        System.out.println("!!!!!!!!!!!!!!!!!value = "+value);
        String delimiter = ",";
        String[] values_array = value.split(delimiter);
        addBookmark(values_array);
        count++; //keep track of the number of bookmarks
    }

    //if there are no bookmarks, display a text view saying so.  Otherwise, make the text view go away
    if (count == 0)
    {
        mEmptyText.setVisibility(View.VISIBLE);
        mEmptyText.setText(getString(R.string.no_favs));
    }
    else
        mEmptyText.setVisibility(View.GONE);

}

private void addBookmark(String[] values_array)
{       
    LayoutInflater vi = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View v = vi.inflate(R.layout.fav_individual, null);

    TextView text = (TextView) v.findViewById(R.id.bookmark_text);
    text.setSelected(true);
    ImageButton button = (ImageButton) v.findViewById(R.id.bookmark_button);
    v.getContext();

    text.setText(values_array[1]);

    final String myClass = values_array[0];
    button.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View v)
        {
            Class<?> cl = null;
            try { 
                cl = Class.forName(myClass); 
                Intent myIntent = new Intent(mContext, cl); 
                startActivity(myIntent); 
                } catch (ClassNotFoundException e) { 
                e.printStackTrace();
                } 
                }
    });

    // insert into main view
    mBookmarkLayout.addView(v, 0, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT));
    System.out.println("!!!!!!!!!!!!!!!!!!!!Just added a view");
}

}

错误是onClick方法,具体如下:

cl = Class.forName(myClass); 

它给我一个ClassNotFoundExc0019。

似乎有了这段代码,我就可以启动这个包中的活动了。但问题是,我想开始的活动在另一个包中。logcat说它在当前包中找不到活动。

那么,在我的案例中,如何从不同的包打开活动呢?Tha活动在清单文件中声明。

谢谢你。

共有1个答案

易祖鹤
2023-03-14

您是否在收藏夹活动中导入了其他包?在代码的顶部添加这一行,并替换与您的其他包相匹配的单词:

import com.yourotherpackage.name.yourclassname;
 类似资料:
  • 问题内容: 我遇到的问题是MainActivity中的onCreate()方法似乎无法启动另一个活动。 我的代码在工作,因此当我单击按钮时,“ AboutActivity”将启动。但是,我要这样做,以便MainActivity中的onCreate()完成后立即启动“ AboutActivity”。 尝试从onCreate()启动“ AboutActivity”时运行该程序时,该程序陷入了空白屏幕。

  • 我想把意图转移到Xamarin.Android中的另一个活动。基本上,我需要Intent.data和Intent.clipdata到另一个活动,所以我使用下面的代码来传输Intent,但我不知道检索它的正确方法。 下面是Main Activity中的代码 在第二活动中 如何在第二个活动中检索意图?

  • 我在使ActivityRecognitation服务保持运行时遇到问题。我目前有一个在后台连续运行的服务(GService)。我希望在GService中启动ActivityRecognitation服务,并让ActivityRecognitation服务将活动结果广播回GService。我能够启动服务并接收它正在运行的反馈,我还从意图处理程序获得一个结果(没有实际数据),但再也不会得到了。 以下是

  • 我试图通过按cardview开始另一项活动,cardview有一个朋友查找id。但是当我写回家时。java它给了我setOnClickListener中的问题。在homeActivity中,它告诉我无法解析“homeActivity”中的方法“homeActivity”。因为

  • 问题内容: 我对android非常陌生,我正在尝试将用户输入的数据(他们的名字)发送到另一个活动。过去,我可以使用Intent在活动之间发送单行代码,但是我无法解决如何向两个不同的TextView发送两个不同的字符串。 这是到目前为止我的MainActivity代码: 我第二项活动MainGame的代码: 当我运行它时,我得到了两个TextView中都为“ name2”添加的内容。我需要做些什么来

  • 在我的程序中,我有一个当应用程序打开时启动的活动。如果我再打开几个活动,我怎么能回到主活动?在意图过滤器中,活动的名称是“android.intent.action.MAIN”,它不允许我在上面调用start Active()。我该怎么办?