রানটাইম এক্সেপশন: আপনার সামগ্রীতে অবশ্যই একটি লিস্টভিউ থাকতে হবে যার আইডি বৈশিষ্ট্যটি 'android.R.id.list'


87

আমি একটি রান সময় ব্যতিক্রম পাচ্ছি

java.lang.RuntimeException: আপনার সামগ্রীতে অবশ্যই একটি তালিকাভিউ থাকতে হবে যার আইডি বৈশিষ্ট্যটি 'android.R.id.list'

আমি জানি না ভুল কি।

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.newslist);
    mDbHelper.open();
    fillData();
}

private void fillData() {
    Bundle extras = getIntent().getExtras();
    long catID = extras.getLong("cat_id");
    Cursor c = mDbHelper.fetchNews(catID);
    startManagingCursor(c);

    String[] from = new String[] { DBHelper.KEY_TITLE };
    int[] to = new int[] { R.id.newslist_text };

    SimpleCursorAdapter notes = new SimpleCursorAdapter(this, R.layout.text_newslist, c, from, to);
    setListAdapter(notes);
}

নিউজলিস্ট.এক্সএমএল

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content">
    <ListView 
         android:id="@+id/catnewslist"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content">
    </ListView>
</LinearLayout>

পাঠ্য_নিউজলিস্ট.এক্সএমএল

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <TextView 
        android:text="@+id/newslist_text"
        android:id="@+id/newslist_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">    
    </TextView>
</LinearLayout>

15
একটি উত্তর নির্বাচন করতে ভুলবেন না!
ফিল

এমডিবি হেল্পার কী? আমি একই নৌকায় আছি এবং এটিকে আমার তালিকাভিউতে কাজ করার চেষ্টা করছি ...
নিক কাহন

উত্তর:


188
<ListView android:id="@android:id/list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"/>

আপনি যদি এখনও একটি তালিকাঅ্যাক্টিভিটি ব্যবহার করতে চান তবে এটি ত্রুটিটি সমাধান করবে।


49
আমাকে আলাদা ফর্ম্যাট ব্যবহার করতে হয়েছিল, চেষ্টা না android:id="@+id/android:list" করলে এটি কাজ করে না। আপনার শ্রেণিটিকে এখনও তালিকার ক্রিয়াকলাপটি প্রসারিত করতে হবে, এবং ListView yourListView = (ListView)findViewById(R.id.yourListView);আরম্ভ করার জন্য এটি করার পরিবর্তেListView yourListView = getListView();
CQM

@ সিকিউএম এখানে কি এই আচরণের কোনও ধরণ রয়েছে?
রুই কার্নেরিও

4
এটিই সমাধান, ওপি যদি কোনও উত্তর বাছাই করে দেখায়!
রাজ্যগুলি

4
কেন এই কাজ করে? কেন আমি অ্যান্ড্রয়েড: আইডিতে অন্য কোনও মান নির্ধারণ করতে পারি না?
বিবেক পান্ডে

4
@ ভিভেকপান্ডে, কারণ আপনি তালিকাঅ্যাক্টিভিটি প্রসারিত করছেন যার জন্য একটি অ্যান্ড্রয়েডের সাথে একটি তালিকাভিউ প্রয়োজন: তালিকার আইডি, বিকাশকারী.অ্যান্ড্রয়েড / রেফারেন্স / অ্যান্ড্রয়েড / অ্যাপ্লিকেশন / তালিকা তালিকাগুলি নীচে zgcharley এটিকে স্পষ্টভাবে ব্যাখ্যা করেছেন
মেরাজেরভেরো

52

কলটি সরিয়ে ফেলুন setContentView- আপনি যদি মৌলিক কিছু না করেন তবে তালিকার ক্রিয়াকলাপে আপনার প্রয়োজন হবে না। কোডটি এটি ছাড়া কাজ করা উচিত।


4
তবে যদি আমরা সেট কনটেন্টভিউ () ব্যবহার না করে তবে কার্যকলাপ কীভাবে কী টেম্পলেট প্রয়োগ করতে পারে?
এসইস

@ ডেস্ক, আমি বিশ্বাস করি এটি প্রাক-সংজ্ঞায়িত তালিকাভিউ টেম্পলেট ব্যবহার করবে।
craned

26

আরেকটি উপায় হ'ল, প্রসারিত করবেন না ListActivity। কেবল প্রসারিত হয় Activity, তারপরে আপনি নিজের তালিকাটি তৈরি করতে পারেন setContentView()এবং তালিকার ভিউটি পেতে পারেন findViewById(R.id.yourlistview)

আপনি যদি থেকে প্রসারিত হন ListActivity, তবে ব্যবহার করবেন না setContentView()। আপনার তালিকার ক্রিয়াকলাপের দ্বারা হোস্ট করা ডিফল্ট তালিকা ভিউ পেতে হবে getListView()


10

আপনার প্রাপ্ত ত্রুটি বার্তায় আমার একই রকম সমস্যা ছিল এবং আমি দেখতে পেয়েছিলাম কারণ আমি কেবল ক্রিয়াকলাপের পরিবর্তে তালিকর্মীকরণ প্রসারিত করছিলাম (এটিই আমি কোনও ভিন্ন প্রকল্পের কোড পুনর্নির্মাণের জন্য পেয়েছি;))


6
<ListView android:id="@id/android:list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:drawSelectorOnTop="false"
        android:scrollbars="vertical"/>

3

আমিও এরকম মুখোমুখি হই। আমার ক্ষেত্রে (সম্ভবত আপনার মামলার সাথে প্রাসঙ্গিক নয়, কেবল অন্যদের সাথে ভাগ করুন) শ্রেণিতে mainActivity.java yourClassName extends ListActivity(){...}পরিবর্তনেyourClassName extends Activity(){...}


4
আমি এটি সত্যিই দরকারী খুঁজে পেয়েছি। এই ভাগ করে নেওয়ার জন্য বারাস ধন্যবাদ।
আইয়্যুব

পরের বিয়ার আমার উপর
ভেঙ্কটা টাটা

1

আমিও এই সমস্যার মুখোমুখি হয়েছি, আমি তালিকাভুক্তি থেকে আমার ক্রিয়াকলাপের ক্লাসটি প্রসারিত করেছিলাম, তবে আমার তালিকার ভিডির আইডিটি খাঁটি ছিল না আমি এটিকে আবার তালিকায় পরিবর্তন করেছি এবং এখন এটি কাজ করে চলছে। অসীম সরোয়া

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.