在listView android中添加项目

时间:2015-02-21 04:37:13

标签: android listview

对于具有“添加和删除项目”功能的ListView,

下面是我的code,该功能正常;但是我想通过我的webview类onbutton click(这应该像保存为书签一样)将文本传递到listview类中,并且我还希望listview在我的webview中打开url onclick

package in.wptrafficanalyzer.listviewdeleteitems;

import java.util.ArrayList;

import android.app.ListActivity;
import android.os.Bundle;
import android.util.SparseBooleanArray;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends ListActivity {

    /** Items entered by the user is stored in this ArrayList variable */
    ArrayList<String> list = new ArrayList<String>();

    /** Declaring an ArrayAdapter to set items to ListView */
    ArrayAdapter<String> adapter;


    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        /** Setting a custom layout for the list activity */
        setContentView(R.layout.main);

        /** Reference to the add button of the layout main.xml */
        Button btn = (Button) findViewById(R.id.btnAdd);

        /** Reference to the delete button of the layout main.xml */
        Button btnDel = (Button) findViewById(R.id.btnDel);

        /** Defining the ArrayAdapter to set items to ListView */
        adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, list);

        /** Defining a click event listener for the button "Add" */
        OnClickListener listener = new OnClickListener() {
                        @Override
                        public void onClick(View v) {
                                EditText edit = (EditText) findViewById(R.id.txtItem);
                                list.add(edit.getText().toString());
                                edit.setText("");
                                adapter.notifyDataSetChanged();
                        }
                };

        /** Defining a click event listener for the button "Delete" */
        OnClickListener listenerDel = new OnClickListener() {
            @Override
            public void onClick(View v) {
                /** Getting the checked items from the listview */
                SparseBooleanArray checkedItemPositions = getListView().getCheckedItemPositions();
                int itemCount = getListView().getCount();

                for(int i=itemCount-1; i >= 0; i--){
                    if(checkedItemPositions.get(i)){                        
                        adapter.remove(list.get(i));
                    }
                }   
                checkedItemPositions.clear();
                adapter.notifyDataSetChanged();



            }
        };            

        /** Setting the event listener for the add button */
        btn.setOnClickListener(listener);

        /** Setting the event listener for the delete button */
        btnDel.setOnClickListener(listenerDel);    

        /** Setting the adapter to the ListView */
        setListAdapter(adapter);
    }
}

网页视图

public class MainActivity extends Activity {
    private WebView webView;
    private EditText urlEditText;
    private ProgressBar progress;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        urlEditText = (EditText) findViewById(R.id.abc);
        webView = (WebView) findViewById(R.id.webView);
        webView.setWebChromeClient(new MyWebViewClient());

        CookieManager.getInstance().setAcceptCookie(true);// Enable Cookies
        webView.getSettings().setJavaScriptEnabled(true);// Enable Java Script
        webView.setWebViewClient(new HelloWebViewClient());
        webView.loadUrl("http://www.google.com/"); // Set Home page
        webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);// Remove
                                                                    // ScrollBars
        webView.getSettings().setDefaultFontSize(12);// Set Font Size
        webView.getSettings().setLoadsImagesAutomatically(true);// Enable Image
                                                                // Loading
        webView.getSettings().setPluginState(PluginState.ON);// Enable Flash
        // webView.setBackgroundColor(0x00000000);//Transparent Screen When
        // Loading
        webView.getSettings().setBuiltInZoomControls(true);// Set Zoom Controls
        webView.requestFocus(View.FOCUS_DOWN);// Enable WebView Interaction

        webView.getSettings().setAppCacheMaxSize(1024 * 1024 * 8);// Set Cache
                                                                    // (8mb)
        String appCachePath = getApplicationContext().getCacheDir()
                .getAbsolutePath();// Set Cache (8mb)
        webView.getSettings().setAppCachePath(appCachePath);// Set Cache (8mb)
        webView.getSettings().setAllowFileAccess(true);// Set Cache (8mb)
        webView.getSettings().setAppCacheEnabled(true);// Set Cache (8mb)
        webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);// Set
                                                                        // Cache
                                                                        // (8mb)

        // ////8888888888888888**URL BAR AND PROGRESS
        // BAR**888888888888888888888888888888888

        progress = (ProgressBar) findViewById(R.id.progressBar);
        progress.setMax(100);

        Button openUrl = (Button) findViewById(R.id.goButton);
        openUrl.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View view) {
                String url = urlEditText.getText().toString();

                if (validateUrl(url)) {
                    webView.getSettings().setJavaScriptEnabled(true);
                    webView.loadUrl(url);

                    MainActivity.this.progress.setProgress(0);
                }
            }

            private boolean validateUrl(String url) {
                return true;
            }
        });

    }

    private class MyWebViewClient extends WebChromeClient {
        @Override
        public void onProgressChanged(WebView view, int newProgress) {
            MainActivity.this.setValue(newProgress);
            super.onProgressChanged(view, newProgress);
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    public void setValue(int progress) {
        this.progress.setProgress(progress);
    }

    // ////8888888888888888**URL BAR AND PROGRESS
    // BAR**888888888888888888888888888888888

    class HelloWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView webview, String url) {

            webview.loadUrl(url);
            return true;
        }
    }

}

XML

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <WebView
        android:id="@+id/webView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="100dp" />

    <Button
        android:id="@+id/goButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:text="GO" />

    <EditText
        android:id="@+id/abc"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:ems="10" >

        <requestFocus />
    </EditText>

    <ProgressBar
        android:id="@+id/progressBar"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/goButton"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/progressBar"
        android:text="bookmark page" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/button1"
        android:layout_alignBottom="@+id/button1"
        android:layout_alignParentRight="true"
        android:layout_toRightOf="@+id/button1"
        android:text="view bookmarks" />

</RelativeLayout>

基本上,我想要的是每当用户点击我的webview类中的“保存为书签”按钮时,它应该将列表视图中的URL添加为新项目,并在用户单击该列表项时在webview中打开该URL

0 个答案:

没有答案