3

虽然我的代码可以工作,但我现在不知道它实际上在做什么。我的应用程序是一个 RSS 阅读器,主要内容在一个Fragment包含对象ListViewNewsStory对象中。单击列表项时,它会打开一个Intent从 RSS 链接的网站。

现在的问题是,我不明白Intent这里,这不是我以前使用过的方式Intent

另外,我必须这样做,以便当我改变方向时,原始配置文件Fragment占据屏幕的左半部分,链接的网页占据屏幕的右半部分。我折腾了一下,没用。我对方向变化做了一些研究,但我觉得用 s 做事Fragment总是会改变一切的工作方式。无论如何,这是Fragment代码。任何想法将不胜感激。

public class HeadlineFragment extends Fragment {

    EditText input;
    Button search;
    ListView headlines;
    NewsDataSource ds;


    public HeadlineFragment() {
        // Required empty public constructor
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View v = inflater.inflate(R.layout.fragment_headline,container,false);

        input = (EditText)v.findViewById(R.id.txtInput);
        search = (Button)v.findViewById(R.id.btnSearch);
        headlines = (ListView)v.findViewById(R.id.listView);

        try {
            ds = new NewsDataSource();
        } catch (ExecutionException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        headlines.setAdapter(new NewsDataSourceAdapter(this.getActivity(), ds));

        headlines.setOnItemClickListener(new AdapterView.OnItemClickListener()
        {
            @Override
            public void onItemClick(AdapterView<?> parent,View view, int position, long id)
            {
                String url = NewsDataSource.stories[position].getLink();
                Intent i = new Intent(Intent.ACTION_VIEW);
                i.setData(Uri.parse(url));
                startActivity(i);
            }
        });

        return v;
    }
    /*
    @Override
    public void onConfigurationChanged(Configuration newConfig){
        super.onConfigurationChanged(newConfig);


    }
    */
}
4

1 回答 1

1

首先,关于那个Intent,它是一个隐含的Intent。当您设置actionACTION_VIEW并添加一个 URI / URL 作为额外内容时,操作系统会收到您想要打开一个可以导航到该 URI / URL 的应用程序的消息。

其次,为了在横向模式下显示双窗格布局,您必须在 a 中显示 RSS 内容,Fragment而不是Activity像您当前所做的那样,并且您必须在in 中Fragment并排显示这些 sActivity横向模式。有关如何以纵向模式显示多窗格主详细信息布局的非常好的说明,请参阅检索联系人列表示例。

参考:

1 Intents and Intent Filters ..

2 Planning for Multiple Touchscreen Sizes ..

于 2015-10-23T08:40:37.007 回答