안녕하세요... 이제 막 책보고 공부를 하고 있는데요,,,

 

궁금한점이 있어 질문드립니다....일단 제 생각으론 제가 자바 기초도 잘 안되어있다고 생각되어지네요...;

 

일단 소스 입니다...

 package net.issro.ms;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
public class MS extends Activity {
 ArrayList<String> Items = new ArrayList<String>();
 ArrayAdapter<String> Adapter;
 ListView list;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_ms);
        Items.add("컴퓨터");
        Items.add("키보드");
        
        Adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, Items);
        Button btn_add = (Button) findViewById(R.id.add);
        Button btn_delete = (Button) findViewById(R.id.delete);
        
        list = (ListView) findViewById(R.id.list);
        list.setAdapter(Adapter);
        
        list.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
        list.setOnItemClickListener(mItemClickListener);
        findViewById(R.id.add).setOnClickListener(mClickListener);
        findViewById(R.id.delete).setOnClickListener(mClickListener);
    }
    
    Button.OnClickListener mClickListener = new View.OnClickListener() {
     public void onClick(View v) {
      EditText ed = (EditText) findViewById(R.id.newitem);
      switch (v.getId()) {
      case R.id.add:
       String text = ed.getText().toString();
       if (text.length() != 0) {
        Items.add(text);
        ed.setText("");
        Adapter.notifyDataSetChanged();
       }
       break;
      case R.id.delete:
       int id;
       id = list.getCheckedItemPosition();
       if (id != ListView.INVALID_POSITION){
        Items.remove(id);
        list.clearChoices();
        Adapter.notifyDataSetChanged();
       }
       break;
      }
     }
    };
    
    AdapterView.OnItemClickListener mItemClickListener = new AdapterView.OnItemClickListener() {
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
      String mes;
      mes = "Select Item = " + Items.get(position);
      Toast.makeText(MS.this, mes, Toast.LENGTH_SHORT).show();
     } 
    };
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_ms, menu);
        return true;
    }
    
}

위 소스에서 궁금한점이 한가지...문제점이 한가지 있습니다...

1. 소스에서 "Button.OnClickListener mClickListener = new View.OnClickListener() {   .........   };" 부분에서 왜 마지막에 }다음 ;을 적어야 하나요?

2. public void onItemClick(AdapterView<?> parent, View view, int position, long id)  부분에서 에러가 있습니다...

에러 내용은 아래와 같습니다.

Multiple markers at this line
 - Syntax error on token ".", Identifier expected after this token
 - implements android.widget.AdapterView.OnItemClickListener.onItemClick

 

음...JDK는 1.7을 사용하고있습니다. 안드로이드 버전은 2.2 입니다.

 

그리구... 2번 부분에서 AdapterView<?> 이렇게 사용하는게 옳바른건가요...? 왜이렇게 사용하는건가요...(<?> 이부분이 궁금합니다.)

 

질문이 많이 길어졌네요... 답변 부탁드립니다 ㅠㅠ