8

मैं उन टैबलेट के लिए एक एप्लिकेशन बनाने की कोशिश कर रहा हूं जिसमें तीन टुकड़ों के साथ एक मुख्य स्क्रीन है, प्रत्येक में एक सूची है। मैं प्रत्येक सूची के लिए संदर्भ मेनू सक्षम करना चाहता हूं, लेकिन जब भी मैं कोशिश करता हूं तो मुझे एक अप्रत्याशित प्रोग्राम स्टॉप और फोर्स क्लोज़ मिलता है।एक सूचीफ्रेम से संदर्भ मेनू

main.xml

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="horizontal" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:padding="3dp"> 

<fragment class="cdc.ListFragment.Fragment1" 
    android:id="@+id/fragment1" 
    android:layout_width="0dp" 
    android:layout_height="match_parent" 
    android:layout_weight="1" /> 

<fragment class="cdc.ListFragment.Fragment2" 
    android:id="@+id/fragment2" 
    android:layout_width="0dp" 
    android:layout_height="match_parent" 
    android:layout_weight="1" /> 

<fragment class="cdc.ListFragment.Fragment3" 
    android:id="@+id/fragment3" 
    android:layout_width="0dp" 
    android:layout_height="match_parent" 
    android:layout_weight="1" /> 

</LinearLayout> 

fragment1:

के बाद प्रासंगिक कोड और xml कि काम करता है और मुझे प्रत्येक में listviews के साथ अपने वांछित तीन टुकड़े कर देता है, इससे पहले कि मैं कोशिश करते हैं और संदर्भ मेनू जोड़ है। एक्सएमएल (अन्य दो समान हैं)

<TextView 
     android:id="@+id/txtHeader1" 
     android:layout_width="fill_parent" 
     android:layout_height="30dp" 
     android:layout_gravity="center" 
     android:gravity="center" 
     android:text="@string/machines_header" 
     android:textColor="#00ccff" 
     android:background="#ff23cf" 
     android:textSize="25dp" /> 

    <ListView 
     android:id="@id/android:list" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     android:drawSelectorOnTop="false" 
     android:textSize="12dp" /> 

    <Button 
     android:id="@+id/Button01" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:minHeight="25dp" 
     android:text="@string/menu_add_machine" 
     android:textSize="15dp" > 
    </Button> 

</LinearLayout> 

ListFragment.java

import android.app.Activity; 
import android.os.Bundle; 

public class ListFragmentExampleActivity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
    } 
} 

Fragment1.java (अन्य दो समान हैं)

import android.app.ListFragment; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
import android.widget.Toast; 

public class Fragment1 extends ListFragment { 
    String[] presidents = { "Dwight D. Eisenhower", "John F. Kennedy", 
      "Lyndon B. Johnson", "Richard Nixon", "Gerald Ford", 
      "Jimmy Carter", "Ronald Reagan", "George H. W. Bush", 
      "Bill Clinton", "George W. Bush", "Barack Obama" }; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     return inflater.inflate(R.layout.fragment1, container, false); 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setListAdapter(new ArrayAdapter<String>(getActivity(), 
       android.R.layout.simple_list_item_1, presidents)); 
    } 

} 

सब कुछ मैं पढ़ा है के अनुसार, मैं बस fragment1 में onCreate विधि के लिए
registerForContextMenu(getListView());
जोड़ने के लिए सक्षम होना चाहिए। जावा और उपयुक्त मेनू कोड जोड़ें। हालांकि, दूसरा मैं इसे जोड़ता हूं और इसे चलाने का प्रयास करता हूं, मुझे पहले उल्लिखित लॉक/क्रैश मिलता है।

किसी के पास इस स्थिति के लिए कोई संकेतक/सहायता है?

उत्तर

34

ले जाएँ

registerForContextMenu(getListView()); 

public void onActivityCreated(Bundle savedState) { 

करने के लिए और यह समस्या को ठीक करना चाहिए।

+0

वाह ... यह आसान है। :) धन्यवाद! – Barak

संबंधित मुद्दे