2016-06-13 4 views
1

Я взял некоторый код, чтобы создать простую форму на Android. Кажется, что некоторые части кода ссылаются на что-то. Я не уверен, что положить туда, чтобы он работал? Я получаю ошибки.Создание формы на студии android

Error:(18, 32) error: cannot find symbol variable activity_form 
Error:(33, 88) error: package com.chalkstreet.learnandroid.main does not exist 
Error:(48, 50) error: cannot find symbol class MainSource 
Error:(57, 41) error: cannot find symbol variable menu_main 

Я не думаю, что мне нужно использовать пакет, который я не имеющий.

Пример проблемы:

Intent sender = new Intent(Form.this, 
===> ???? com.chalkstreet.learnandroid.main.Display.class); 

Вот моя форма:

public class Form extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_form); 
    getSupportActionBar().setHomeButtonEnabled(true); 
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

    //Initialize buttons and Edit Texts for form 
    Button btnSubmit = (Button) findViewById(R.id.button_submit); 
    Button btnSrc = (Button) findViewById(R.id.buttonSrc); 
    final EditText name = (EditText) findViewById(R.id.editText1); 
    final EditText email = (EditText) findViewById(R.id.editText2); 
    final EditText phone = (EditText) findViewById(R.id.editText4); 

    //Listener on Submit button 
    btnSubmit.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent sender = new Intent(Form.this, com.chalkstreet.learnandroid.main.Display.class); 
      Bundle b1 = new Bundle(); //Bundle to wrap all data 
      b1.putString("name", name.getText().toString()); //Adding data to bundle 
      b1.putString("email", email.getText().toString()); 
      b1.putString("phone", phone.getText().toString()); 
      sender.putExtras(b1); //putExtras method to send the bundle 
      startActivity(sender); 
      Form.this.finish(); //Finish form activity to remove it from stack 
     } 
    }); 

    //Listener on source button 
    btnSrc.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent j = new Intent(Form.this, MainSource.class); 
      startActivity(j); 
     } 
    }); 
} 

@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 == android.R.id.home) { 

     Form.this.finish(); 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 


} 
} 

Благодаря

+1

Кажется, вы не создали файлы xml, activity_form.xml и menu_main.xml, также возможно, что вы не создали MainSource.java, или если это внутренний класс, вы не включили родительский файл. –

ответ

2

Создайте файл с именем MainSource.java, то есть, если вы еще не сделали этого, и создать файл с именем menu_main.xml в папке меню в каталоге Реза и добавить свои пункты меню, создать другой файл макет в макет папки в каталоге Рез и назовите его activity_form.xml, вы можете добавить необходимые взгляды с идентификаторами совпали в Form.java

Более иллюстративно, menu_main может содержать

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools"> 
    <item 
     android:id="@+id/action_settings" 
     android:orderInCategory="100" 
     android:title="@string/action_settings" 
     app:showAsAction="never" /> 
</menu> 

activity_form.xml могло быть что-то вроде

<?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical"> 

     <EditText 
      android:id="@+id/editText1" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:hint="Name" /> 

     <EditText 
      android:id="@+id/editText2" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:hint="Email" /> 

     <EditText 
      android:id="@+id/editText3" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:hint="Something Else" /> 

     <EditText 
      android:id="@+id/editText4" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:hint="Phone" /> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="horizontal"> 
     <Button 
      android:id="@+id/button_submit" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 

     <Button 
      android:id="@+id/buttonSrc" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 
</LinearLayout> 
    </LinearLayout> 

Я понятия не имею, что вы хотите MainSource сделать, так что я не могу сказать об этом. Надеюсь, это поможет.

+0

Я одобрен, потому что это хорошо объяснено, но если вы создаете новое действие, все файлы автоматически генерируются. –

1

При создании явного Intent, вам нужно только обеспечить начальный контекст и класс окончание ,

Intent i = new Intent(FirstActivity.this, ResultActivity.class); 

 Смежные вопросы

  • Нет связанных вопросов^_^