Ошибки в Android Studio myfirstapp: ошибки градиента

Я пытаюсь следовать вместе с официальным учебником Android (http://developer.android.com/training/basics/firstapp/starting-activity.html), но я терпеть неудачу. Все работало нормально, пока мне не понадобилось добавить второе действие. Во-первых, активность, которую я создал в Android Studio, не отображается в моем списке java файлов. Я нажал New → Activity, и ничего не появилось. Чтобы обойти это, я открыл проводник Windows и скопировал/переименовал MainActivity.java в DisplayMessageActivity.java и добавил код в учебник.

После выполнения команды приложение не запускается, и я получаю несколько ошибок "Gradle", таких как:

Gradle: error: cannot find symbol class Activity
Gradle: error: cannot find symbol class Bundle

Что мне нужно исправить, чтобы запустить это? Вот соответствующий код:

MainActivity.java

package com.example.myfirstapp;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.content.Intent;
import android.widget.EditText;


public class MainActivity extends Activity {
 public final static String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";

 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 }


 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
 // Inflate the menu; this adds items to the action bar if it is present.
 ***************().inflate(R.menu.main, menu);
 return true;
 }

 /** Called when the user clicks the Send button */
 public void sendMessage(View view) {
 // Do something in response to button
 Intent intent = new Intent(this, DisplayMessageActivity.class);
 EditText editText = (EditText) findViewById(R.id.edit_message);
 String message = editText.getText().toString();
 intent.putExtra(EXTRA_MESSAGE, message);
 }

}

Показать MessageActivity.java

package com.example.myfirstapp;

public class DisplayMessageActivity extends Activity {

 @SuppressLint("NewApi")
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_display_message);

 // 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);

 // Make sure we're running on Honeycomb or higher to use ActionBar APIs
 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
 // Show the Up button in the action bar.
 getActionBar().setDisplayHomeAsUpEnabled(true);
 }
 }

 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
 switch (item.getItemId()) {
 case android.R.id.home:
 NavUtils.navigateUpFromSameTask(this);
 return true;
 }
 return super.onOptionsItemSelected(item);
 }
}

AndroidManifest.xml

<!--?xml version="1.0" encoding="utf-8"?-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.myfirstapp" android:versioncode="1" android:versionname="1.0">

 <uses-sdk android:minsdkversion="7" android:targetsdkversion="16">

 <application android:allowbackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme">
 <activity android:name="com.example.myfirstapp.MainActivity" android:label="@string/app_name" android:parentactivityname="com.example.myfirstapp.MainActivity">
 <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.example.myfirstapp.MainActivity">
 <intent-filter>
 <action android:name="android.intent.action.MAIN">

 <category android:name="android.intent.category.LAUNCHER">
 </category></action></intent-filter>
 </meta-data></activity>
 </application>

</uses-sdk></manifest>
4 ответа

На каждой ошибке вы получили (на красном, как на изображении), и нажмите Alt + Enter, чтобы импортировать отсутствующие классы или объявить переменные.

Обратите внимание, что все файлы (.java) должны быть не красными, если они свободны от ошибок.


Возможно, некоторые названия учебных классов изменились. то вам нужно указать имя "Активность" перед переменной "extra_message", как MyActivity.EXTRA_MESSAGE

on main Activity put... public final static String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";

или просто использовать любую ценность. например String message = intent.getStringExtra('xxx');


когда вы создаете действие, убедитесь, что вы также вставляете его в файл mainifest.xml, поэтому ваш манифест должен выглядеть следующим образом:

<!--?xml version="1.0" encoding="utf-8"?-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.myfirstapp" android:versioncode="1" android:versionname="1.0">

 <uses-sdk android:minsdkversion="7" android:targetsdkversion="16">

 <application android:allowbackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme">
 <activity android:name="com.example.myfirstapp.MainActivity" android:label="@string/app_name" android:parentactivityname="com.example.myfirstapp.MainActivity">
 <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.example.myfirstapp.MainActivity">
 <intent-filter>
 <action android:name="android.intent.action.MAIN">

 <category android:name="android.intent.category.LAUNCHER">
 </category></action></intent-filter>
 </meta-data></activity>
 </application></uses-sdk></manifest>


Пройдите через учебник, вас научат его создавать позже.

licensed under cc by-sa 3.0 with attribution.