2011-11-23 93 views
2

想要了解是否有人可以幫助我確定如何將EditText框的內容添加到Android的ListView列表中。我正在開發一個項目,使用Barcode Scanner掃描條形碼,並將結果返回到EditText框。單擊按鈕後,EditText框內容到Android的ListView中

我現在試圖使用按鈕來編輯EditText框的內容,以便在該活動內或在另一個活動內添加列表中的內容。我已經看過簡單的筆記列表示例和其他幾個示例,但是,當我嘗試並實現一些相同的概念時,我沒有得到任何地方或者我認爲我在某處,但代碼沒有任何作用。對不起它的晚..一直通宵試圖弄清楚這一點... 任何幫助,建議,大大始終感激...

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(); 
      } 
     } 
    } 
} 

回答

1

我已經改變了代碼一點,它是根據您的要求,請查看同一

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(); 
      } 
     } 
    } 
} 
+0

謝謝合作!像一個魅力......另一個快速問題,現在的代碼掃描,返回一個條形碼,我可以點擊添加按鈕添加到列表,但是,如果我(點擊AddButton)或(掃描)到添加另一個項目,它只是替換之前掃描的項目......我如何獲得它的代碼有一個項目列表掃描......現在它只是一個......我現在仍在努力看看我不是在做什麼,以防止這種情況發生...再次感謝... –

+0

//這裏我們設置適配器,這將它打開 myListView.setAdapter(aa); //添加註釋 noteList.add(0,myEditText.getText()。toString()); //更新視圖 \t \t aa.notifyDataSetChanged(); \t \t \t \t //刪除文本,以便我們可以添加另注 \t \t myEditText.setText( 「」); –

+0

別管最後的評論......我明白了!非常感謝您的反饋。現在我正在推動我的應用程序的下一個階段... –

1

在按鈕的單擊事件,添加EDITTEXT的文本添加到列表中,用於填充ListView並調用ArrayAdapter的notifyDataSetChanged()。希望這會起作用。

noteList.add(mBarcodeEdit.getText()); 
aa.notifyDataSetChanged(); 
相關問題