2011-01-24 2 views
0
public class Page1 extends Activity { 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.welcome); 
     final Button button = (Button) findViewById(R.id.welcome); 
      button.setOnClickListener(new View.OnClickListener() { 
       public void onClick(View view) { 
        Intent myIntent = null; 
         myIntent = new Intent(view.getContext(), Page1.class); 
        startActivity(myIntent); 
       } 
      });   
    } 

} 

Я хочу, чтобы загрузить содержимое из другого файла XML с именем welcome.xml, но я получаю сообщение об ошибке welcome cannot be resolved or is not a field классаМакетов в Android [идентификатор или поле не могут быть решены]

Это Page1.java является следующим экраном моего приложения для Android.

Мои Welcome.xml

<Button android:text="@+id/Button01" android:id="@+id/welcome" 
android:layout_width="wrap_content" android:layout_height="wrap_content" 
xmlns:android="http://schemas.android.com/apk/res/android"> 
</Button> 

ответ

1

Должно работать.

Если вы не установили обработчик, вы видите кнопку на экране?

Является ли файл фактически названным «* W * elcome.xml»? Попробуйте удалить заглавную букву (переименуйте ее на welcome.xml). Тогда же чистой, восстановить и проверить, работает ли он сейчас ...

1

Могли бы вы вставить полный файл XML и войти? моя первая догадка - у вас проблема с корпусом, ваш файл макета называется «Добро пожаловать», и у вас есть setContentView для «приветствия». Также не имеют одинаковых имен для макетов и элементов управления, это будет запутывать.

1

firend вы делаете глупые ошибки: увидеть это



public class Page1 extends Activity { 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.welcome); 
    final Button button = (Button) findViewById(**R.id.Button01**);//use id of button here not layout name 

     button.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view) { 
       Intent myIntent = null; 
        myIntent = new Intent(view.getContext(), Page1.class); 
       startActivity(myIntent); 
      } 
     });   
} 

}

1

Это все, что у вашего welcome.xml есть?

Ваша кнопка не находится под макетом. таким образом, сам файл макета будет исключать исключения. во-вторых, android:text не подходит. запись, которую вы сделали там, должно быть под android:id

и это не должно быть:

final Button button = (Button) findViewById(R.id.welcome); 

но:

final Button button = (Button) findViewById(R.id.Button01); 
0

Welcome.xml содержит кнопки с идентификатором приветствия, которое не является макет для setContentView Представления могут быть List, relative, absolute table и т. д., в которые вы можете добавить кнопку.

Также проверьте чехол в имени файла и указанном R.layout.

Образец файла xml с linearlayout и кнопкой. Сохранить как welcome.xml

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

<Button 
android:id="@+id/ButtonWelcome" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:text="@string/button" 
> 
</Button> 

</LinearLayout> 

в вашем коде

public class Page1 extends Activity { 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.welcome); 
     final Button button = (Button) findViewById(R.id.ButtonWelcome); 
      button.setOnClickListener(new View.OnClickListener() { 
       public void onClick(View view) { 
        Intent myIntent = null; 

       **//You have called Page1.class again which is the name of this class //again** 
         myIntent = new Intent(view.getContext(), Page1.class); 
        startActivity(myIntent); 
       } 
      });   
    } 

} 

Создайте другую деятельность аналогична и вызов, класс в намерениях, выделенный жирным шрифте.

0

Ваше добро пожаловать.XML не является полным, должно быть что-то вроде этого:

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

    <Button android:text="@+id/Button01" android:id="@+id/welcome" 
     android:layout_width="wrap_content" android:layout_height="wrap_content" 
     xmlns:android="http://schemas.android.com/apk/res/android"> 
    </Button> 

</LinearLayout> 

Кроме того, если ваш еще есть problemas, пытаются очистить свой проект так R.java обновляется с новым идентификатором значения как приветственном идентификатор (R .id.welcome), потому что если R.java не содержит идентификатор приветствия, вы получите такие ошибки.

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