例如,mainActivity.java文件实际上是集群的并且为了保持其清洁,我创建了第二个.java(类),我将在按下按钮时执行一些代码。我根本想不出怎么做。而且我不确定要使用哪些搜索条件,所以如果已经涵盖,我会道歉。
这是我在“测试”应用程序中的内容。
我有一个主要活动,上面有一个按钮。
package com.test.secondclass;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity {
Button startButton;
final Intent second = new Intent(getApplicationContext(), testClass.class);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
startButton = (Button)findViewById(R.id.button1);
startButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
startActivity(second);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
现在这里是我制作的“第二”课程,现在记住这很短暂,我只是将它用于锻炼计划,然后再将其应用到我的实际课程中。
package com.test.secondclass;
import android.app.Activity;
import android.widget.Toast;
public class testClass extends Activity{
public void onCreate(){
Toast.makeText(getApplicationContext(), "Second class thinger started", Toast.LENGTH_LONG).show();
}
}
如果我尝试这个,我会立即关闭一个力量。如果我在主要活动的最开始时注释掉“意图”部分,那么程序就会运行。但它没有做我想要的。明显。谢谢大家
答案 0 :(得分:0)
添加OnClickListener以向testClass发送任何信息,如下所示(未经测试):
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent secondIntent = new Intent();
secondIntent.setClassName(myPackageName, "testClass");
startActivityForResult(secondIntent, REQUEST_CODE);
});
答案 1 :(得分:0)
以下是我的观点:由于您尝试打开没有上下文的用户界面方法(例如Toast),您正在接收强制关闭。
重要提示:我假设你已经在manifest.xml文件中定义了这两个类!
在解释之前,我会做一个简短的说明: Toast :此类打开一条快速消息,接收上下文,消息和显示时间作为主要参数; 上下文:它是显示的“环境”。类似于视觉范围的东西,它定义了您拥有的资源。在大多数情况下,您可以使用 setContentView 方法设置它。
问题解释,在我看来:发生“崩溃”是因为您打开没有上下文的Toast消息。活动是一种非常类似于视图的UI控件。如果您调用一个新活动,它非常喜欢调用新页面,因此,新的上下文。在第二个活动中,我没有看到任何上下文。我认为你假设上下文是从第一个活动中保留的,但它并不是因为它是一个新的活动。
如何解决:
希望它在某种程度上有所帮助。
答案 2 :(得分:0)
谢谢大家的答案!!在显示Toast消息后,我实际上能够使用“stopSelf()”命令执行我想要的操作。我实现了一个服务类,当我按下按钮时,调用testClass.java类并运行“toast”消息,然后立即通过“stopSelf()”命令退出。我通过包含一个“onDestroy()”方法来确保这一点,该方法还显示了一条简单的Toast消息,确认服务正在停止:)。我通常使用线程做这样的事情,但无论我做了多少格式化,它都使主要活动变得非常混乱。所以我想要一个我可以使用的单独课程。
对于评论者EfEs,我来自用于Windows的C#语言编程。 Android对我来说是一个新的游乐场,我还在学习。我觉得我做得很好,但不知道怎么做我问的。但我明白了。并且感谢清除android中的Activity就像C#中的“WindowsForm”,它是用户的全新GUI。我不知道。但感谢所有人帮助我发帖!