-1

我正在尝试在运行时在片段中实现选取框文本视图。

问题 #1:tv.setSelected(true);我在第一个片段上得到一个空指针异常。一切正常,直到我为文本视图添加选取框代码。

问题#2: 如何在列表视图中移动到新片段而不是新意图public void onItemClick

这是我的代码:

 public static class FragmentOne extends Fragment {

 ArrayList< String > ar;
 ArrayAdapter< String >  ad ;
 ListView lv ;
 TextView     tv;

public FragmentOne() {
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle        
         savedInstanceState) {
     View rootView = inflater.inflate(R.layout.one, container, false);
          tv = (TextView) rootView.findViewById(R.id.textView1);  

        tv.setSelected(true);
     ar = new ArrayList<String>(); 
     lv = (ListView) rootView.findViewById(R.id.listView1); 
     for (int i = 0 ; i< 10  ; i++){

        ar.add("My Item " + String.valueOf(i)); 

      }
      ad = new ArrayAdapter<String>
     (getActivity().getApplicationContext(), android.R.layout.simple_dropdown_item_1line, 
             ar);

     lv.setAdapter(ad);
     lv.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                          Toast t = Toast.makeText(getActivity(), "Message",
                                 Toast.LENGTH_SHORT);
                          t.show();

                        Intent i = new Intent(getActivity(), tst.class); 


                        startActivity(i); 

            }
        }); 


    return rootView;
}

}

这是xml代码:

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">

<TextView
    android:id="@+id/mywidget"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginLeft="94dp"
    android:layout_marginTop="145dp"
    android:ellipsize="marquee"
    android:fadingEdge="horizontal"
    android:lines="2"
    android:marqueeRepeatLimit="marquee_forever"
    android:scrollHorizontally="true"
    android:text="صور أندلسية ..... صفحة الأندلس ....معارك  أندلسية ..... الأندلس في سطور    
     ..... الأندلس :  "
    android:textColor="#ff4500"
    android:focusable="false" />

  </RelativeLayout>
4

3 回答 3

3

空指针异常通常发生在您没有初始化对象或初始化为空时。

于 2013-07-31T12:20:41.860 回答
2

在这里回答您的第一个问题 - 我强烈建议发布 2 个单独的问题。

如果 NPE 被抛出:

tv.setSelected(true);

(需要一个 LogCat 来确保)

...然后你TextViewnull

反过来,这意味着rootView.findViewById(R.id.textView1);没有返回有效的,可能是因为在您的xmlTextView中找不到具有此类 id(或该类型)的子项。R.layout.one

确保您的R.layout.onexml 包含TextView具有 id 的节点textView1

编辑

如果您发布的布局对应于R.layout.one,这很简单:TextView那里的 id 是mywidget.

你需要改变它。

还要确保布局没有在其他地方使用,否则更改布局中的 id 可能会带来问题。

您可能想要更改您的 id 引用Fragment

于 2013-07-31T12:00:52.440 回答
0

textView1发生这种情况是因为您的 XML 中没有任何带有 id 的 TextView 。

编辑

一旦您在 XML 中需要一个带有 ID 的 ListView,您也会遇到 ListView 的问题listView1

于 2013-07-31T12:03:15.210 回答