2015-07-05 4 views
0

Я пишу приложение для своего устройства Android, которое содержит три кнопки в нижней части экрана. В моем методе onCreate я устанавливаю три объекта Button в соответствующие их представления, используя findViewById(). Вот код, который я написал:Android: Кнопка рассматривается как tableLayout?

public class MainActivity extends AppCompatActivity { 

    Button btnAdd = null; 
    Button btnEdit = null; 
    Button btnDelete = null; 

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

     btnAdd = (Button) findViewById(R.id.btnAdd); 
     btnEdit = (Button) findViewById(R.id.btnEdit); 
     btnDelete = (Button) findViewById(R.id.btnDelete); 

     init(getApplicationContext()); 

     btnAdd.setOnClickListener(new OnClickListener() { 
      public void onClick(View view) { 
       EventWriter.writeToFile(eventFile, getApplicationContext()); 
      } 
     }); 
    } 

    ... 

} 

Мой XML выглядит следующим образом, с кнопкой элементов, объявленных в RelativeLayout:

<Button 
    android:id="@+id/btnDelete" 
    android:layout_width="100dp" 
    android:layout_height="wrap_content" 
    android:layout_alignEnd="@+id/scrollView1" 
    android:layout_alignRight="@+id/scrollView1" 
    android:layout_alignParentBottom="true" 
    android:text="@string/txtBtnDelete" /> 

<Button 
    android:id="@+id/btnAdd" 
    android:layout_width="100dp" 
    android:layout_height="wrap_content" 
    android:layout_alignStart="@+id/scrollView1" 
    android:layout_alignLeft="@+id/scrollView1" 
    android:layout_alignParentBottom="true" 
    android:text="@string/txtBtnAdd" /> 

<Button 
    android:id="@+id/btnEdit" 
    android:layout_width="100dp" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true" 
    android:text="@string/txtBtnEdit" /> 

Когда я пытаюсь запустить приложение, используя эмулятор в Eclipse, Я получаю следующее сообщение об ошибке LogCat на линии № 36 (btnDelete = (Button) findViewById(R.id.btnDelete);):

Caused by: java.lang.ClassCastException: android.widget.TableLayout cannot be cast to android.widget.Button 

Я есть TableLayout ранее в коде (находится внутри ScrollView), но не содержит кнопки:

<ScrollView 
    android:id="@+id/scrollView1" 
    android:layout_width="wrap_content" 
    android:layout_height="300dp" 
    android:layout_alignParentStart="true" 
    android:layout_alignParentLeft="@+id/actvSearchEvent" 
    android:layout_alignParentEnd="true" 
    android:layout_alignParentRight="true" 
    android:layout_below="@+id/actvSearchEvent" 
    android:layout_above="@+id/btnAdd" 
    android:layout_marginTop="32dp" 
    android:background="@drawable/scrollview_border" > 

    <TableLayout 
     android:id="@+id/tlTable" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 

    </TableLayout> 

</ScrollView> 

Я не вижу, где это становится, что я пытаюсь бросить TableLayout к Button. У кого-нибудь есть идеи?

ответ

1

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

+0

Вы на самом деле избили меня, я только что очистил проект, и все получилось просто отлично. Я как раз собирался опубликовать свой ответ. – DerStrom8

-1

Ошибка означает, что вы все еще указываете на макет с видом прокрутки и расположением таблицы. И в нем нет кнопок.

Вы можете легко исправить это, вставив свои кнопки в макет таблицы, например.

<TableLayout...> 
    <Button 
     android:id="@+id/btnDelete" 
     android:layout_width="100dp" 
     android:layout_height="wrap_content" 
     android:layout_alignEnd="@+id/scrollView1" 
     android:layout_alignRight="@+id/scrollView1" 
     android:layout_alignParentBottom="true" 
     android:text="@string/txtBtnDelete" /> 
    <Button 
     android:id="@+id/btnAdd" 
     android:layout_width="100dp" 
     android:layout_height="wrap_content" 
     android:layout_alignStart="@+id/scrollView1" 
     android:layout_alignLeft="@+id/scrollView1" 
     android:layout_alignParentBottom="true" 
     android:text="@string/txtBtnAdd" /> 
    <Button 
     android:id="@+id/btnEdit" 
     android:layout_width="100dp" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_centerHorizontal="true" 
     android:text="@string/txtBtnEdit" /> 
</TableLayout> 
+0

Мне не нужны кнопки внутри TableLayout, вот и все. Во всяком случае, я провел чистую команду над проектом, и все сработало нормально. Не уверен, что вызвало это, но по крайней мере это снова работает :) – DerStrom8