0

こんにちは私は次のコードとコードQ1とQ2に2つの質問があります

Q1)このサイトで、フラグメント内から新しいアクティビティを作成できないと読んだので、フラグメント内にいて、作成したい場合

Intent intent = new Intent(this, DetailActivity.class);
startActivity(intent);

どうすればいいのですか?


Q2) また、onListItemClickに入らないようですが、ここで何か間違ったことをしているのでしょうか、OnListItemsClickの場所が間違っているのでしょうか、それとも何ですか?

次の新しいフラグメントFragment1.javaを作成するファイルActionBarMain.javaがあります。

//ActionbarMain.java

        fram1 = new FragMent1();
        fragMentTra.addToBackStack(null);
        fragMentTra = getFragmentManager().beginTransaction().add(rl.getId(), fram1, "fram1");


//Fragment1.java
    import android.app.Fragment;
    import android.content.Intent;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;

    public class FragMent1 extends Fragment {

    private String[] bookNames;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        ListView listView = new ListView(getActivity());
        ArrayAdapter<String> array = new ArrayAdapter<String>(getActivity(),
                android.R.layout.simple_list_item_1);

        bookNames= bookNames();



        for (String str : bookNames)
            array.add(str);
        listView.setAdapter(array);
        return listView;
    }

    private String[] bookNames(){
        SimpleBookManager.getSimpleBookManager().count();
        bookNames = new String[SimpleBookManager.getSimpleBookManager().count()]; 
        for(int i=0; i < SimpleBookManager.getSimpleBookManager().count(); i++){
            bookNames[i]= SimpleBookManager.getSimpleBookManager().getBook(i).getTitle();
        }
        return bookNames;
    }

    public void onListItemClick(ListView l, View v, int position, long id) {
        //Q1)Nothing happens here nothing is printed out and I get no errors when I click on
        //an Item in the list, its like it don't come here, why?
        Log.d("test", SimpleBookManager.getSimpleBookManager().getBook(position).getTitle());
        Log.d("test", "jje");

        //Q2)Call the DetailActivity.java how to achive this since I'm inside a fragment?   
    }
}
4

2 に答える 2

1

A1)

Intent intent = new Intent(getActvity(), DetailActivity.class);
getActivity().startActivity(intent);

これにより、詳細アクティビティが開きます。getActivity()フラグメントが配置されているアクティビティを返します。

問題に関する詳細情報が得られたら、Q2 に回答します

于 2012-11-16T12:57:34.560 に答える
0

ListFragment を使用しないのはなぜですか?

このようなもの:

public class ListFragment extends android.support.v4.app.ListFragment {
    /*
     * (non-Javadoc)
     * 
     * @see android.support.v4.app.Fragment#onCreate(android.os.Bundle)
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

    }

    /*
     * (non-Javadoc)
     * 
     * @see android.support.v4.app.Fragment#onActivityCreated(android.os.Bundle)
     */
    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        String[] values = new String[] { "Android", "iPhone", "WindowsMobile",
                "Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X",
                "Linux", "OS/2" };
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
                android.R.layout.simple_list_item_1, values);
        setListAdapter(adapter);

    }

    /*
     * (non-Javadoc)
     * 
     * @see
     * android.support.v4.app.ListFragment#onListItemClick(android.widget.ListView
     * , android.view.View, int, long)
     */
    @Override
    public void onListItemClick(ListView l, View v, int position, long id) {
        String item = (String) getListAdapter().getItem(position);
        Intent intent = new Intent(getActivity().getApplicationContext(),
                    DetailActivity.class);
            intent.putExtra("value", item);
            startActivity(intent);
        }

    }
} //END OF CLASS
//END OF FILE

上記のコードは私にとってはうまくいきます。

于 2012-11-16T13:09:31.273 に答える