2013-08-08 4 views
0

아래에서 볼 수있는 것처럼 항목 목록에 대해 작업하는 상황에 맞는 메뉴를 가져 오려고하지만 항목이 목록 이름을 클릭 할 때 연결하는 방법을 모르겠습니다. >>>>>가있는 줄은 내가 잘못 생각한 것입니다. 누군가 내가 뭘 잘못했는지 좀 봐주실 수 있습니까? 당신은 android docs on String Resources을 참조 할 수 있습니다 String[] names = getResources().getString(R.array.?????);ContextMenu에서 간단한 오류가 발생했습니다. 누군가 제발 해결할 수 있습니까?

String[] names = getResources().getStringArray(R.array.?????);

import java.util.ArrayList; 
import android.app.ListActivity; 
import android.media.MediaPlayer; 
import android.os.Bundle; 
import android.view.ContextMenu; 
import android.view.ContextMenu.ContextMenuInfo; 
import android.view.MenuInflater; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.AdapterView.AdapterContextMenuInfo; 
import android.widget.ListView; 
import android.widget.Toast; 

public class MainActivity extends ListActivity { 
private ArrayList<Sound> mSounds = null; 
private SoundAdapter mAdapter = null; 
static MediaPlayer mMediaPlayer = null; 

public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 
registerForContextMenu(getListView()); 
this.getListView().setSelector(R.drawable.selector); 
//create a simple list 
mSounds = new ArrayList<Sound>(); 
Sound s = new Sound(); 
s.setDescription("Anjels"); 
s.setSoundResourceId(R.raw.anjels); 
mSounds.add(s); 
s = new Sound(); 
s.setDescription("Aggro"); 
s.setSoundResourceId(R.raw.aggro); 
mSounds.add(s); 
s = new Sound(); 
s.setDescription("Axo"); 
s.setSoundResourceId(R.raw.axo); 
mSounds.add(s); 
s = new Sound(); 
s.setDescription("Basix"); 
s.setSoundResourceId(R.raw.basix); 
mSounds.add(s); 
s = new Sound(); 
s.setDescription("Bender"); 
s.setSoundResourceId(R.raw.bender); 
mSounds.add(s); 
s = new Sound(); 
s.setDescription("Blimp"); 
s.setSoundResourceId(R.raw.blimp); 
mSounds.add(s); 
mAdapter = new SoundAdapter(this, R.layout.list_row, mSounds); 
setListAdapter(mAdapter); 
} 
@Override 
public void onListItemClick(ListView parent, View v, int position, long id){ 
Sound s = (Sound) mSounds.get(position); 
MediaPlayer mp = MediaPlayer.create(this, s.getSoundResourceId()); 
mp.start(); 

}@Override 
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { 
    super.onCreateContextMenu(menu, v, menuInfo); 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.context_menu, menu); 
    } 


public boolean onContextItemSelected(MenuItem item) { 
    AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); 
    >>>>>>String[] names = getResources().getStringArray(mSounds); 
    switch(item.getItemId()) { 
    case R.id.setasnotification: 
      Toast.makeText(this, "Applying " + getResources().getString(R.string.setas) + 
         " context menu option for " + names[(int)info.id], 
         Toast.LENGTH_SHORT).show(); 
      return true; 
    default: 
      return super.onContextItemSelected(item); 
    } 
}} 

답변

1

변경 : 여기 내 Main_Acitivty입니다. 문자열 배열 자원의

예 :

XML file saved at res/values/strings.xml: 

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <string-array name="planets_array"> 
     <item>Mercury</item> 
     <item>Venus</item> 
     <item>Earth</item> 
     <item>Mars</item> 
    </string-array> 
</resources> 

행성의 배열에 액세스하려면 :

String[] names = getResources().getStringArray(R.array.planets_array); 
+0

하지만 물음표가 어디 넣을까요? –

+0

추가 된 예. 예 : – Tarun

+0

에 따라 strings.xml을 편집 할 수 있지만 모든 항목은 기본 스레드에 있습니다. 이 경우 어떻게해야합니까? –