Java 发送一些数据
我在youtube上看android studio发送数据教程 然后当我遵循它并执行程序时,我的程序总是说android停止工作 content\u main.xml } SecondActivity.javaJava 发送一些数据,java,android,Java,Android,我在youtube上看android studio发送数据教程 然后当我遵循它并执行程序时,我的程序总是说android停止工作 content\u main.xml } SecondActivity.java public class MainActivity extends AppCompatActivity { EditText message_text; public final static String MESSAGE_KEY = "dproject.user.myapplicat
public class MainActivity extends AppCompatActivity {
EditText message_text;
public final static String MESSAGE_KEY = "dproject.user.myapplication.message_key";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
}
public void sendMessage (View view)
{
message_text=(EditText)findViewById(R.id.message_text);
String message = message_text.getText().toString();
Intent intent = new Intent(this,SecondActivity.class);
intent.putExtra(MESSAGE_KEY,message);
startActivity(intent);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
public class MainActivity extends AppCompatActivity {
EditText message_text;
public final static String MESSAGE_KEY = "dproject.user.myapplication.message_key";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
}
public void sendMessage (View view)
{
message_text=(EditText)findViewById(R.id.message_text);
String message = message_text.getText().toString();
Intent intent = new Intent(this,SecondActivity.class);
intent.putExtra(MESSAGE_KEY,message);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
logcat
04-13 03:11:41.796 10106-10106/dproject.user.myapplication E/AndroidRuntime: FATAL EXCEPTION: main
Process: dproject.user.myapplication, PID: 10106
java.lang.IllegalStateException: Could not find method SendMessage(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.support.v7.widget.AppCompatButton
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.resolveMethod(AppCompatViewInflater.java:327)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:284)
at android.view.View.performClick(View.java:4780)
at android.view.View$PerformClick.run(View.java:19866)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
AndroidManifest.xml
文件中存在SecondActivity
李>
按钮中删除android:onClick=“SendMessage”
,并为按钮提供id
:
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Button_text" />
你在用什么Android设备/模拟器进行测试?你的代码是什么API级别的?我正在使用genymotion作为模拟器。API级别为21请发布错误日志以准确了解发生了什么。MainActivity和SecondActivity看起来相同。堆栈跟踪在哪里..我的第二个活动存在于androidManifest.xml中,我移动了代码,但当我执行程序时,模拟器仍然显示“很不幸,我的应用程序已停止”
<activity android:name=".SecondActivity">
...........
......................
EditText message_text;
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
................
.....................
message_text = (EditText) findViewById(R.id.message_text);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sendMessage();
}
});
....................
........................
}
public void sendMessage()
{
String message = message_text.getText().toString();
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
intent.putExtra(MESSAGE_KEY,message);
startActivity(intent);
}
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Button_text" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Button_text"
android:onClick="SendMessage"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Button_text"
android:onClick="sendMessage"
/>