Пользовательский список, начинающий новую деятельность? - PullRequest
1 голос
/ 15 сентября 2011

Я создал настраиваемый элемент списка, чтобы заменить простой элемент списка Android, надувая каждый элемент списка.Настроенный список работает и состоит из image view и text view.

Моя проблема заключается в том, что при попытке запустить новый activity после нажатия элемента списка ничего не происходит, даже приложениене потерпит крахИтак, есть ли способ запустить действие, используя представление списка ???

public class activityone extends ListActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activitylayout);

        setListAdapter(new MyAdapter(this, android.R.layout.simple_list_item_1,      R.id.textView1, 
                           getResources().getStringArray(R.array.names)));

    }
    public void onListItemClick(ListView l, View v, int position,
                long id) {
            // TODO Auto-generated method stub
            super.onListItemClick(l, v, position, id);

            Object o = this.getListAdapter().getItem(position);

            if(getSelectedItemPosition() == 0){
                Intent intent = new Intent(activityone.this,no1.class);
                startActivity(intent);
            }
                                   .
                                   .
                                   . 
                                   .

    }

    private class MyAdapter extends ArrayAdapter<String>{

        public MyAdapter(Context context, int resource, int textViewResourceId,
                String[] strings) {
            super(context, textViewResourceId, strings);
            // TODO Auto-generated constructor stub
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {

            LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            View row = inflater.inflate(R.layout.list_item, parent, false);

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

            ImageView iv = (ImageView) row.findViewById(R.id.imageView1);
            TextView tv = (TextView) row.findViewById(R.id.textView1);

            tv.setText(items[position]);


            if(items[position].equals("john")){
                iv.setImageResource(R.drawable.john);
            }
                                   .
                                   .
                                   . 
                                   .

            return row;
        }
    }
}

А вот класс no1

public class no1 extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.name_profile);

        CharSequence t1 = "Name: john";
        CharSequence t2 = "Age: 31";
        CharSequence t3 = "Nationality: Saudi";
        CharSequence t4 = "Number: 765646454";

        ImageView iv = (ImageView) findViewById(R.drawable.imageView1);
        TextView tv1 = (TextView) findViewById(R.id.textView1);
        TextView tv2 = (TextView) findViewById(R.id.textView2);
        TextView tv3 = (TextView) findViewById(R.id.textView3);
        TextView tv4 = (TextView) findViewById(R.id.textView4);

        iv.setImageResource(R.drawable.john);

        tv1.setText(t1);
        tv2.setText(t2);
        tv3.setText(t3);
        tv4.setText(t4);
    }
}

И да, мои activities добавлены вmanifest xml file.

Спасибо за вашу помощь.


@ Vineet Shukla Я не знаю, как это сделать, я установил точку останова, но я не смог отладить, я новичокчтобы затмить среду, не могли бы вы объяснить больше, пожалуйста

@ Divyesh

Я отредактировал код, и приложение теперь падает, когда я нажимаю элемент списка здесь трассировки Logcat

09-17 10:10:57.686: ERROR/AndroidRuntime(365): FATAL EXCEPTION: main
09-17 10:10:57.686: ERROR/AndroidRuntime(365): java.lang.RuntimeException: Unable to        start activity ComponentInfo{com.abc.act/com.abc.act.no1}: java.lang.NullPointerException
09-17 10:10:57.686: ERROR/AndroidRuntime(365):     at    android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
09-17 10:10:57.686: ERROR/AndroidRuntime(365):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
09-17 10:10:57.686: ERROR/AndroidRuntime(365):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
09-17 10:10:57.686: ERROR/AndroidRuntime(365):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)

09-17 10:10:57.686: ERROR/AndroidRuntime(365):     at android.os.Handler.dispatchMessage(Handler.java:99)
09-17 10:10:57.686: ERROR/AndroidRuntime(365):     at android.os.Looper.loop(Looper.java:123)
09-17 10:10:57.686: ERROR/AndroidRuntime(365):     at android.app.ActivityThread.main(ActivityThread.java:4627)
09-17 10:10:57.686: ERROR/AndroidRuntime(365):     at java.lang.reflect.Method.invokeNative(Native Method)
09-17 10:10:57.686: ERROR/AndroidRuntime(365):     at java.lang.reflect.Method.invoke(Method.java:521)
09-17 10:10:57.686: ERROR/AndroidRuntime(365):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
09-17 10:10:57.686: ERROR/AndroidRuntime(365):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
09-17 10:10:57.686: ERROR/AndroidRuntime(365):     at dalvik.system.NativeStart.main(Native Method)
09-17 10:10:57.686: ERROR/AndroidRuntime(365): Caused by: java.lang.NullPointerException
09-17 10:10:57.686: ERROR/AndroidRuntime(365):     at com.abc.act.no1.onCreate(no1.java:31)
09-17 10:10:57.686: ERROR/AndroidRuntime(365):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
09-17 10:10:57.686: ERROR/AndroidRuntime(365):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
09-17 10:10:57.686: ERROR/AndroidRuntime(365):     ... 11 more

1 Ответ

0 голосов
/ 19 сентября 2011

Вы не используете этот API эффективно, вам следует переключиться на SimpleAdapter, поскольку он обрабатывает более сложные макеты элементов списка и привязки данных.Вместо того, чтобы создавать неразрешимые операторы ветвления, вам нужно эффективно использовать базовые данные списка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...