Проблема с переключателем Android - PullRequest
0 голосов
/ 14 февраля 2011

Я новичок в Java и Android, и мне было интересно, можно ли использовать Intent в этом случае, чтобы вызвать новый фон, а затем текст для того, на какой элемент пользователь щелкнул (например, они нажимают открыть контакты и я им говорю что такое открытые контакты) или есть другой способ?

public class ListActivityExample extends ListActivity{
static final String[] ACTIVITY_CHOICES = new String[] {
    "Open Website Example",
    "Open Contacts",
    "Open Phone Dialer Example",
    "Search Google Example",
    "Start Voice Command"
};
final String searchTerms = "superman";

protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);

    setListAdapter(new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, ACTIVITY_CHOICES));
    getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
    getListView().setTextFilterEnabled(true);
    getListView().setOnItemClickListener(new OnItemClickListener()
    {
        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1,
                int arg2, long arg3){
            switch(arg2) {
            case 0: //opens web browser and navigates to given website
                 startActivity(new Intent(Intent.ACTION_VIEW,
                         Uri.parse("http://ww.android.com")));
                break;
            case 1: //opens phone dialer and fills in the given number
                {
                startActivity(new Intent(Intent.ACTION_VIEW,
                        Uri.parse("content://contacts/people/")));
                break;}
            case 2:            
                {
                  startActivity(new Intent(Intent.ACTION_VIEW,
                        Uri.parse("tel:12125551212")));
                 break;}
            case 3: //
                {
                Intent intent= new Intent(Intent.ACTION_WEB_SEARCH);
                intent.putExtra(SearchManager.QUERY, searchTerms);
                startActivity(intent);
                break;}
            case 4: // 
                {startActivity(new
                                Intent(Intent.ACTION_VOICE_COMMAND));
                break;}
                default: break;
            }
        }
    });
}
}

Ответы [ 3 ]

0 голосов
/ 14 февраля 2011

Две вещи о вашем заявлении о переключении.

Во-первых, вы пропускаете разрыв после случая 2.

Во-вторых, в качестве отличного стандарта программирования вы должны заключать в кейсы свои случаи при создании новых переменных внутри них.

0 голосов
/ 05 ноября 2011

Я думаю, вам нужно определить ListView. Также добавьте Listview в свой макет. Я поделился рабочим ссылочным кодом:

    public class MainMenu extends ListActivity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            try {
            String[] opt = getResources().getStringArray(R.array.MainMenu);
            super.onCreate(savedInstanceState);
            setContentView(R.layout.mainmenu);

            ListView lv = getListView();
            ListAdapter la = new ArrayAdapter<String>(this,
                    android.R.layout.simple_list_item_1, opt);
            lv.setAdapter(la);
            lv.setTextFilterEnabled(true);
            lv.setOnItemClickListener(new OnItemClickListener() {

                public void onItemClick(AdapterView<?> parent, View view,
                        int position, long id) {

                    switch (position) {
                    case 0:
                        Intent firstIntent = new Intent(MainMenu.this,
                                After1.class);
                        startActivity(firstIntent);
                        break;
                    case 1:
                        Intent secondIntent = new Intent(MainMenu.this,
                                After2.class);
                        startActivity(secondIntent);
                        break;

                    default:
                        break;
                    }

                }

                @SuppressWarnings("unused")
                public void onClick(View v) {
                    // TODO Auto-generated method stub

                }
            });

        } catch (Exception e) {
        }

    } // END onCreate()
}// END CLASS
0 голосов
/ 14 февраля 2011

Я заметил, что вы пропустили перерыв;утверждение в случае 2, которое будет означать, что в случае 2 будет пытаться выполнить дело 2 и дело 3

...