我知道这里有很多关于这个标题的主题,但我是android开发的新手,尝试了很多东西,但没有达成解决方案。
我有一个带有TextView的MainClass。 MainClass在第二个类中调用一个Method(" Check")。第二个类应该只创建一个带有字符串的intent,我在mainClass的textview中打印出来。 (稍后它应该更复杂,但首先我必须得到它。)
这是我的MainClass代码:
package com.projektarbeit;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends Activity {
public static TextView output = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Variable initialisieren
output = (TextView) findViewById(R.id.output);
//App gestartet ausgeben
output.setText("App started");
Check check1 = new Check();
check1.doCheck();
Intent intent = getIntent();
String myString = intent.getStringExtra("Test");
output.setText(myString);
}
}
这是我的CheckClass代码:
package com.projektarbeit;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
public class Check extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_check);
}
public void doCheck (){
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
intent.putExtra("Test", "This is a test");
startActivity(intent);
}
}
我完全错了,或者我的错误是什么?
答案 0 :(得分:4)
为什么使用Intent,你究竟想做什么?
如果你真的只想检查字符串,那么下面的代码就可以了:
public String doCheck (){
return "This is a test";
}
要在textView中设置此文本,您只需调用此方法:
output.setText(check1.doCheck());
答案 1 :(得分:0)
Check check1 = new Check();
check1.doCheck();
您不应该实例化Activity
要从Check
开始MainActivity
,您应该执行以下操作:
Intent intent = new Intent(MainActivity.this, Check.class);
startActivity(intent);
另外,正如 Md。第纳尔建议,不要忘记declare the Activity on your AndroidManifest file。
答案 2 :(得分:-1)
您是否在Android清单中添加了活动?如果是,请尝试
Intent intent = new Intent(Check.this, MainActivity.class);
而不是
Intent intent = new Intent(getApplicationContext(), MainActivity.class);