0

嗨,伙计们,我是 android 编程和 Java 的新手。我正在尝试制作一个旅行应用程序。我的问题是如何将数据从列表中的选定项目传递到 editText 文件。这是我到目前为止所做的事情。请。be kind 我是 newbee
使用 ListActivity 的活动类

import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class SelectStationActivity extends ListActivity {

    String stations[] = { "Acton Main Line","Ealing","Great Western","Albany Park"};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ArrayAdapter <String> adapter =new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, stations);
        setListAdapter(adapter);
    }

    protected void OnListItemClick(ListView l, View v, int position, long id) {
        String values = stations[(int) id];
        Intent result = new Intent().putExtra("SELECTED_STATION_NAME", values);
        setResult(RESULT_OK, result);
        finish();
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        getMenuInflater().inflate(R.menu.select_station, menu);
        return true;
    }

主要班

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.widget.SimpleCursorAdapter.ViewBinder;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class TravelActivity extends Activity {

    // The request code for the selectChkInBt
    protected static final int SelectChkin_REQUEST_CODE = 1; 
    // The request code for the selectChkOutBt
    protected static final int SelectChkout_REQUEST_CODE = 2;

    private String checkinStation;
    private String checkoutStation;

    private Button checkinButton, checkoutButton, selectChkInButton, selectChkOutButton;
    private EditText checkinEditText, checkoutEditText;

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

        checkinButton = (Button) findViewById(R.id.btCkIn);
        checkoutButton = (Button) findViewById(R.id.BtChkOut);

        selectChkInButton = (Button) findViewById(R.id.btselectChkIn);
        selectChkOutButton = (Button) findViewById(R.id.btselectChkOut);

        checkinEditText = (EditText) findViewById(R.id.EditTxtChkIn);
        checkoutEditText = (EditText) findViewById(R.id.EditTxtChkOut);


        checkinButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (checkinEditText.getText().toString().equals("")) {
                    Toast.makeText(TravelActivity.this,
                            "Enter Check-in Station", Toast.LENGTH_LONG).show();
                } else {
                    checkinStation = checkinEditText.getText().toString();

                    // Enable the check-out EditText and Button
                    checkinEditText.setEnabled(false);
                    checkinEditText.setTextColor(Color.CYAN);
                    checkinButton.setEnabled(false);

                    // Disable the check-in- EdiText AND Button
                    checkoutEditText.setEnabled(true);
                    checkoutButton.setEnabled(true);
                    checkoutEditText.requestFocus();
                }
            }
        });

        checkoutButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (checkoutEditText.getText().toString().equals("")) {
                    Toast.makeText(TravelActivity.this,
                            "Enter Check-Out station", Toast.LENGTH_LONG)
                            .show();
                } else {
                    checkoutStation = checkoutEditText.getText().toString();

                    // Clear edit Text
                    checkoutEditText.setText("");
                    // Enable the check-in EditText and Button
                    checkoutEditText.setEnabled(false);
                    checkoutButton.setEnabled(false);

/* * 禁用签出 EditText 和 Button,以允许 * 签入和签出的永恒循环再次开始 */

                    checkinEditText.setText("");
                    checkinEditText.setEnabled(true);
                    checkinButton.setEnabled(true);
                    checkinEditText.requestFocus();

                    Toast.makeText(getApplicationContext(),
                            "Travel information added!", Toast.LENGTH_SHORT)
                            .show();
                }
            }
        });         

我可以为两个选择按钮实现一个内部类,但我很难做到。请。提供一些帮助我如何实现它谢谢。

selectChkInButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent(TravelActivity.this,
                            SelectStationActivity.class);
                    startActivityForResult(intent, SelectChkin_REQUEST_CODE);
                }
            });

            selectChkOutButton.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    Intent intent = new Intent(TravelActivity.this,SelectStationActivity.class);
            startActivityForResult(intent, SelectChkout_REQUEST_CODE);

                }
            });


        }

onActivityResult 在这里没有响应

        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
                    super.onActivityResult(requestCode, resultCode, data);
                    if (resultCode== RESULT_OK){
                        if (requestCode == 1) {
                    checkinEditText.setText(data.getStringExtra("SELECTED_STATION_NAME"));
                }

            }

        }

        @Override
        public boolean onCreateOptionsMenu(Menu menu) {

            MenuItem item = menu.add(Menu.NONE, Menu.FIRST, Menu.NONE, "Recipt");
            item.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);

            return true;
        }

        public boolean OnMenuItemSelected(int featureId, MenuItem item) {

            String Recipt = "Recipt" + item.getItemId() + "\nCheck-in: "
                    + checkinStation + "\nCheck-Out: " + checkoutStation;
            Toast.makeText(getApplicationContext(), Recipt, Toast.LENGTH_LONG)
                    .show();
            return true;

        }

        protected void OnSaveInstanceState(Bundle outState) {
            outState.putString("lAST_CHECKIN", checkinStation);
            outState.putString("lAST_CHECKOUT", checkoutStation);
        }

        protected void onRestoreInstance(Bundle savedInstanceState) {
            checkinStation = savedInstanceState.getString(checkinStation);
            checkoutStation = savedInstanceState.getString(checkoutStation);

        }

    }
4

1 回答 1

1

你应该使用这个

checkinEditText.setText(data.getStringExtra("SELECTED_STATION_NAME"));

作为

checkinEditText.setText(data.getStringExtra("SELECTED_STATION_NAME").toString());

于 2014-01-15T08:50:50.700 回答