单击“共享”按钮时,如何从这些数组列表项中获取文本值

时间:2017-07-28 20:17:30

标签: android listview android-intent arraylist

我有一个列表视图中显示的项目数组列表。我想要做的是在单击共享按钮时获取数组列表值的参数的字符串值以放入共享意图。

以下是基于我迄今收到的输入和建议的修订代码:

<View
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:background="#000"/>

单击共享按钮时,我在调试器控制台中收到以下错误:

  

java.lang.IllegalStateException:找不到方法   onItemClick(View)在父或祖先的上下文中为android:onClick   在视图类上定义的属性   android.support.v7.widget.AppCompatButton,id为&#39; sharebutton&#39;

根据我收到的建议,我无法找出我做错了什么。 请帮我纠正我的代码并告诉我我做错了什么以及解决它的最佳方法。

1 个答案:

答案 0 :(得分:1)

这是您从数组列表项中获取文本值并将其置于意图中的方式,并在必要时进一步将其显示在新活动中。 (参考代码)

//-----------------------------------------------------------------------
// MainActivity.java
// This is how you will get the text values out of the array list items
// And create a share intent
//-----------------------------------------------------------------------

    protected void onPostExecute(Void result) {
        super.onPostExecute(result);

        // Adding menuItems to ListView
        ListAdapter adapter = new SimpleAdapter(MainActivity.this, itemList,
        R.layout.list_item,
        new String[] { "title","link", "snippet" }, new int[] {
        R.id.title, R.id.link, R.id.snippet });

        setListAdapter(adapter);

        // selecting single ListView item
        ListView lv = getListView();

        lv.setOnItemClickListener(new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> parent, View view,
        int position, long id) {

        // getting values from selected ListItem
        String title = ((TextView) view.findViewById(R.id.title)).getText().toString();
        String link = ((TextView) view.findViewById(R.id.link)).getText().toString();
        String snippet = ((TextView) view.findViewById(R.id.snippet)).getText().toString();

        // Starting Share intent
        Intent shareIntent = new Intent();
        shareIntent.setAction(Intent.ACTION_SEND);
        shareIntent.setType("text/plain");
        shareIntent.putExtra(Intent.EXTRA_SUBJECT, title);
        shareIntent.putExtra(Intent.EXTRA_TEXT, link + " " + snippet );
        startActivity(Intent.createChooser(shareIntent, "Share Via"));
        }
        });
    }