Java 无法让google教程正常工作
我刚刚开始学习开发android应用程序,为此我遵循了谷歌的 在本教程中,只有一个文本框和一个按钮。按下按钮后,它将从文本框中获取文本并在另一个活动中显示。但不知怎么的,这个按钮对我不起作用 下面是片段_main.xml、MainActivity.java和DisplayMessageActivity.java的代码。我只是想知道我是做错了什么,还是错过了什么 fragmant_main.xml:Java 无法让google教程正常工作,java,android,Java,Android,我刚刚开始学习开发android应用程序,为此我遵循了谷歌的 在本教程中,只有一个文本框和一个按钮。按下按钮后,它将从文本框中获取文本并在另一个活动中显示。但不知怎么的,这个按钮对我不起作用 下面是片段_main.xml、MainActivity.java和DisplayMessageActivity.java的代码。我只是想知道我是做错了什么,还是错过了什么 fragmant_main.xml: <?xml version="1.0" encoding="utf-8"?> <
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<EditText android:id="@+id/edit_message"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:hint="@string/edit_message" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_send"
onClick="sendMessage" />
</LinearLayout>
DisplayMessageActivity.java
package com.example.first;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.app.ActionBarActivity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
public class DisplayMessageActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Get the message from the intent
Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
// Create the text view
TextView textView = new TextView(this);
textView.setTextSize(40);
textView.setText(message);
// Set the text view as the activity layout
setContentView(textView);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.display_message, menu);
return true;
}
@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 (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
/**
* A placeholder fragment containing a simple view.
*/
public static class PlaceholderFragment extends Fragment {
public PlaceholderFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_display_message,
container, false);
return rootView;
}
}
}
编辑**
在fragment_main.xml文件中,按钮标签的最后一行应该是:
android:onClick=“sendMessage”
,而不是onClick=“sendMessage”
您含糊不清的“但不知怎么的,按钮对我不起作用”没有提供任何信息,您的问题很快就会被关闭。如果您需要任何帮助,请提供所有相关的详细信息。很简单,当我在写入文本字段后按下按钮时。它不起作用。什么也没有发生。我收到一个错误,类型MainActivity的方法getActivity()未定义,因此我进行了快速搜索并尝试MainActivity。这个.getActivity()
,但仍然是相同的错误。Hmmm,这是因为sendMessage方法实际上在MainActivity类中,而不是在片段中。我会继续查找。在您的fragment\u main.xml文件中,按钮标记的最后一行应该是:android:onClick=“sendMessage”而不是onClick=“sendMessage”,我刚刚做了一个巨大的facepalm。我的一部分人期待着这一切。
package com.example.first;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.app.ActionBarActivity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
public class DisplayMessageActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Get the message from the intent
Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
// Create the text view
TextView textView = new TextView(this);
textView.setTextSize(40);
textView.setText(message);
// Set the text view as the activity layout
setContentView(textView);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.display_message, menu);
return true;
}
@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 (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
/**
* A placeholder fragment containing a simple view.
*/
public static class PlaceholderFragment extends Fragment {
public PlaceholderFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_display_message,
container, false);
return rootView;
}
}
}