2016-06-10 2 views
1

다음과 같은 문제가 있습니다. 그런 다음 특정 데이터를 표시하는 사용자 정의 laytout item_event를 사용하는 listView를 작성합니다. 이것은 모두 작동합니다. 이제는 앱에서 listView의 요소 중 하나를 클릭 할 때마다 새 액티비티로 이동할 수있게하려고합니다. 내 MainMenu는 ListActivity를 확장하므로 setListAdapter를 사용할 수 있습니다. 어떻게 setOnItemClickListener를 사용할 수 있습니까? ListView 객체를 만든 다음 참조하려고했지만 해당 android : id = "@ android : id/list"/>로 인해 액세스 할 수 없습니다. 그것을하는 방법?ListView를 확장하는 주 활동의 onItemClickListener 설정

C:\Users\John\Desktop\trial\cos1\HangApp-0.5\app\src\main\java\com\mysampleapp\MainMenu.java 
Error:(110, 9) error: cannot find symbol method setOnItemClickListener(<anonymous OnItemClickListener>) 
Note: Some input files use or override a deprecated API. 
Note: Recompile with -Xlint:deprecation for details. 
:app:compileDebugJavaWithJavac FAILED 
Error:Execution failed for task ':app:compileDebugJavaWithJavac'. 
> Compilation failed; see the compiler error output for details. 
+0

오류가있는 경우 도움이 될 수 있습니다. 당신은 받고 있어요 – peter

+0

오류 있습니까? Bcoz ur setOnItemCliclListener가 정상적으로 보입니다. 오류 메시지도 게시하십시오 –

답변

1

당신은 당신이 당신의 ListView

의 각 항목에 핸들 이벤트에 대한 Override onListItemClick를 클릭 할 수 있습니다 :
package com.mysampleapp; 

import android.content.Intent; 
import android.os.AsyncTask; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.Button; 
import android.widget.ListView; 
import android.app.ListActivity; 


import com.userpreferencesom.AmazonClientManager; 
import com.userpreferencesom.DynamoDBManager; 

import java.util.ArrayList; 



public class MainMenu extends ListActivity { 

    //ListView eventsList; 
    Button newEvent; 
    Event event= new Event(); 
    //ArrayList<Event> eventList = new ArrayList(); 


    public static AmazonClientManager clientManager = null; 

    private ArrayAdapter<String> arrayAdapter = null; 
    private ArrayList<String> labels = null; // list of names of events manly for test) 
    private ArrayList<Event> items = null; //stores events 

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

     clientManager = new AmazonClientManager(this); //CIPEK 
     new GetEventList().execute(); //calling GetEventList from included class below 

     newEvent = (Button) findViewById(R.id.new_event_button); 

     newEvent.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent intent = new Intent(MainMenu.this, EventCreationActivity.class); 
       startActivity(intent); 
      } 
     }); 


    } 

    private void setupActivity() { 
     Log.v("MOJEMOJEMOJE", event.getName()); 
    } 

    private class GetEvent extends AsyncTask<Void, Void, Void> { 

     protected Void doInBackground(Void... voids) { 

      event = DynamoDBManager.getEvent(""); //in bracket ID number 
      return null; 
     } 

     protected void onPostExecute(Void result) { 

      setupActivity(); 
     } 
    } 


    private class GetEventList extends AsyncTask<Void, Void, Void> { 

     protected Void doInBackground(Void... inputs) { 

      labels = new ArrayList<String>(); 

      items = DynamoDBManager.getEventList(); 

      for (Event up : items) { 
       labels.add(up.getName()); 
      } 

      return null; 
     } 

     protected void onPostExecute(Void result) { 

      Log.v("Events:", labels.toString()); 
      updateDisplay(); 

     } 
    } 

    public void updateDisplay(){ 
     //Using Event Adapter to display data 
     EventAdapter adapter = new EventAdapter(this, R.layout.item_event, items); 
     setListAdapter(adapter); 

     setOnItemClickListener(new AdapterView.OnItemClickListener() { //HERE IT CANNOT BUILD 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       Intent intent = new Intent(MainMenu.this, EventViewActivity.class); 
       startActivity(intent); 
      } 
     }); 
    } 

} 

여기

오류 로그이며, 사전에 존을 주셔서 감사합니다
public class MainMenu extends ListActivity 
    ... 
    ... 
    @Override 
    protected void onListItemClick(ListView l, View v, int position, long id) { 
     super.onListItemClick(l, v, position, id); 

     Toast.makeText(this, "click at " + position,Toast.LENGTH_LONG).show(); 
    } 
} 
+0

그것은 작동합니다, 감사합니다! –

관련 문제