

少しエラーが解決したので修正しました．  
そこで，「ListView は解決できないか、フィールドではありません」  
を解決したいです．  
どうすれば良いでしょうか？  
以下詳細．

Androidアプリのエラー処理について質問です．  
Androidアプリに関してあまりよく分かってません．コードを以下に記載しますので，どこがどうおかしいか等教えてください．  
また，「@Override」が何のために必要なのか等も教えてほしいです．

修正後のエラー

[code]

    ListView listView = (ListView) findViewById(R.id.ListView);
    
[/code]

↑の部分で  
ListView は解決できないか、フィールドではありません  
というエラーが表示されます  
また，

[code]

    ListAdapter adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, DAYS);
    
[/code]

↑の部分で  
この行に複数マーカーがあります  
- ListAdapter を型に解決でき  
ません  
- ArrayAdapter を型に解決で  
きません  
というエラーが表示されます．  
対処方法が分かる方お願いします．

[code]

    package com.example.recip;
    
    import android.os.Bundle;
    import android.support.v7.app.ActionBarActivity;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.widget.ListView;
    
    public class MainActivity extends ActionBarActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            ListView listView = (ListView) findViewById(R.id.ListView);
    
            //adapterの作成
            ListAdapter adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, DAYS);
            //Adapterの設定
            listView.setAdapter(adapter);
        }
        //ListViewに表示させる文字列
        private static final String[] DAYS = new String[] {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.main, 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);
        }
    }
    
[/code]

またXMLファイルのコードも記載します．

[code]

        <RelativeLayoutxmlns: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:paddingBottom="@dimen/activity_vertical_margin"
            android:paddingLeft="@dimen/activity_horizontal_margin"
            android:paddingRight="@dimen/activity_horizontal_margin"
            android:paddingTop="@dimen/activity_vertical_margin"
            tools:context="com.example.recip.MainActivity" >
    
         <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="ボタンの配置" />
    
        <Button
            android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:text="gazou" />
    
        <ListView
            android:id="@+id/ListView"
            android:layout_width="fill_parent"
            android:layout_height="0dip"
            android:layout_weight="1" />
    </RelativeLayout>
    
[/code]


CC BY-SA 3.0
2015-05-28T04:37:15.453
10711
2015-05-28T07:47:09.830
2015-05-28T06:22:24.280
9505
9505
question
android java android-layout xml
Androidアプリのエラー処理


使用しているIDEはeclipseですよね？

> ListView は解決できないか、フィールドではありません

これは、`findViewById(R.id.ListView)`の部分の`R.id.ListView`という名前が見つからないというエラーです。

`XML`の`@+id/ListView`の`ListView`と、`findViewById(R.id.ListView)`の`ListView`は大文字小文字を含めて同じでないとダメです。  
ソースを見た感じでは、上記のエラーは出なさそうです。eclipseではjavaファイルやxmlファイルを保存(ctrl+s)したときにコンパイルを行っています。  
xmlファイルは保存していますか？

> ListAdapter を型に解決できません  
>  ArrayAdapter を型に解決できません

これは、`import`文が指定されていないためだと思います。  
`eclipse`では`import`文は自動で追加してくれません。  
`ctrl+shift+O`キーで`import`文を追加(編成)してくれます。

> また，「@Override」が何のために必要なのか等も教えてほしいです．

メソッドやフィールドの上に@hogehogeとあるのはアノテーションと呼ばれるものです。  
`@Override`は、そのメソッドがオーバーライドしているということを示しています。  
このアノテーションに関しては、「このメソッドはオーバーライドしているメソッドです」というのをコンパイラに教えてあげているだけですので、消してもエラーにはなりませんし、動作も変わりありません。  
しかし、メソッド名などを打ち間違えたときに、コンパイラでエラーを出してくれるため消さずに残しておきましょう。  
Javaの入門書を１冊読んでおくといいかもしれません。


CC BY-SA 3.0
2015-05-28T07:47:09.830
10715
2015-05-28T07:47:09.830
8216
10711
answer