2 Stimmen

EditText-Box Inhalt in ListView auf Android nach dem Klicken auf Button

Möchte sehen, wenn jemand mir auf herauszufinden, wie man den Inhalt eines EditText-Feldes in eine ListView-Liste auf Android hinzufügen helfen kann. Ich habe ein Projekt, das ich auf, dass arbeitet, verwendet Barcode-Scanner, um einen Barcode zu scannen, und geben Sie die Ergebnisse in das EditText-Feld.

Ich versuche nun, den Inhalt des EditText-Feldes mit Hilfe einer Schaltfläche zu kodieren, um den Inhalt der Liste entweder innerhalb dieser Aktivität oder einer anderen hinzuzufügen. Ich habe mir das Beispiel für eine einfache Notizliste und einige andere Beispiele angesehen, aber wenn ich versuche, einige der gleichen Konzepte zu implementieren, komme ich nicht weiter oder ich denke, ich komme weiter, aber der Code tut nichts. Tut mir leid, dass es so spät ist... ich war die ganze Nacht auf und habe versucht, das herauszufinden... Jede Hilfe, Beratung, ist sehr und immer geschätzt...

package com.terrellmcqueen.databaseproject474;

import java.util.ArrayList;

import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;

public class Main extends Activity implements OnClickListener {
    private static final int REQUEST_BARCODE = 0;
    private TextView mBarcodeEdit;
    private TextView mScanButton;

    // private fields omitted

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        mBarcodeEdit = (EditText) findViewById(R.id.myEditText);
        mScanButton = (Button) findViewById(R.id.scanButton);
        mScanButton.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.scanButton:
                Intent intent = new Intent("com.google.zxing.client.android.SCAN");
                intent.putExtra("SCAN_MODE", "SCAN_MODE");
                startActivityForResult(intent, REQUEST_BARCODE);
                break;
        }
     }

     public void onClick1(View v) {
         switch (v.getId()) {
             case R.id.btnSimple:    
                 ListView myListView = (ListView) findViewById(R.id.myListView);
                 final EditText myEditText = (EditText) findViewById(R.id.myEditText);        
                 final ArrayList<String> noteList = new ArrayList<String>();
                 final ArrayAdapter<String> aa;

                 // binding an array of Strings 
                 aa = new ArrayAdapter<String>(this, 
                         android.R.layout.simple_list_item_1,noteList);

                 // here we set the adapter, this turns it on
                 myListView.setAdapter(aa);

                 // here is the button
                 // Button btnSimple = (Button) findViewById(R.id.btnSimple);

                 //  String barcode = mBarcodeEdit.getText().toString();

                 //  String title = mTitleEdit.getText().toString();
                 //  String price = mPriceEdit.getText().toString();
            }
      }

    public void onActivityResult(int requestCode,int resultCode, Intent intent) {
        if (requestCode == REQUEST_BARCODE) {
            if (resultCode == RESULT_OK) {
                String barcode = intent.getStringExtra("SCAN_RESULT");
                mBarcodeEdit.setText(barcode);
            } else if (resultCode == RESULT_CANCELED) {
                finish();
            }
        }
    }
}

1voto

Kannan Suresh Punkte 4563

Fügen Sie im Klick-Ereignis den Text des editTextes der Liste hinzu, die zum Auffüllen der ListView verwendet wird, und rufen Sie die Funktion notifyDataSetChanged() Ihres ArrayAdapters auf. Ich hoffe, das funktioniert.

noteList.add(mBarcodeEdit.getText());
aa.notifyDataSetChanged();

1voto

Dinesh Prajapati Punkte 8949

Ich habe den Code ein wenig geändert und es funktioniert nach Ihren Anforderungen schauen Sie sich bitte die gleichen

package com.barcode;

import java.util.ArrayList;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;

public class BarcodeActivity extends Activity implements OnClickListener {
    private static final int REQUEST_BARCODE = 0;
    private TextView mBarcodeEdit;
    private Button mScanButton;
    private Button mAddButton;

    // private fields omitted

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        mBarcodeEdit = (EditText) findViewById(R.id.editText1);
        mScanButton = (Button) findViewById(R.id.button1);
        mAddButton = (Button) findViewById(R.id.add);
        mScanButton.setOnClickListener(this);
        mAddButton.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.button1:
            Intent intent = new Intent("com.google.zxing.client.android.SCAN");
            intent.putExtra("SCAN_MODE", "SCAN_MODE");
            startActivityForResult(intent, REQUEST_BARCODE);
            break;
        case R.id.add:
            ListView myListView = (ListView) findViewById(R.id.listView1);
            final EditText myEditText = (EditText) findViewById(R.id.editText1);
            final ArrayList<String> noteList = new ArrayList<String>();
            noteList.add(myEditText.getText().toString());
            final ArrayAdapter<String> aa;

            // binding an array of Strings
            aa = new ArrayAdapter<String>(this,
                    android.R.layout.simple_list_item_1, noteList);

            // here we set the adapter, this turns it on
            myListView.setAdapter(aa);
            break;
        }
    }

    public void onActivityResult(int requestCode, int resultCode, Intent intent) {
        if (requestCode == REQUEST_BARCODE) {
            if (resultCode == RESULT_OK) {
                String barcode = intent.getStringExtra("SCAN_RESULT");
                mBarcodeEdit.setText(barcode);
            } else if (resultCode == RESULT_CANCELED) {
                finish();
            }
        }
    }
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X