java - 难以从使用谷歌地图地点选择器 API 获得的位置传递数据并将其发送到 textView 以供用户查看位置

标签 java android google-places-api

我正在开发一个简单的应用程序,它使用 google place picker API 检索地点的位置,但我无法检索数据并将其设置为 textView。检索数据时其他一切都分开工作。当覆盖方法时总是使用@Overide 注释以确保您重写您打算使用的方法以避免以下错误

下面是我的代码示例:

public class MainActivity extends AppCompatActivity {
    private EditText name;
    private EditText email;
    private TextView date;
    private TextView location;


    private Button Submit,Select;
    private String NAME;    // stores name value
    private  String EMAIL; // stores email value
    private String DATE;    // stores  date value

    private DatePickerDialog.OnDateSetListener dateSetListener;

    int PLACE_PICKER_REQUEST = 1;

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

        name = (EditText)findViewById(R.id.edtNameID);
        email = (EditText)findViewById(R.id.edtEmailID);

        NAME = name.getText().toString();
        EMAIL = email.getText().toString();

        location = (TextView)findViewById(R.id.locationtxt);

        date = (TextView)findViewById(R.id.txtSelectDate);
        date.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {

                java.util.Calendar calendar = java.util.Calendar.getInstance();
                int month = calendar.get(java.util.Calendar.MONTH);
                int year = calendar.get(java.util.Calendar.YEAR);
                int day = calendar.get(java.util.Calendar.DAY_OF_MONTH);

                month = month+1;

                DatePickerDialog dialog = new DatePickerDialog(MainActivity.this,R.style.Theme_AppCompat_DayNight, dateSetListener,year,month,day);
                dialog.show();
            }
        });
        dateSetListener = new DatePickerDialog.OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker datePicker, int year, int month, int day) {
                String result  = day  +"/" +month +"/"+year;
                date.setText(result);
            }
        };
        DATE = date.getText().toString();


        Select = (Button)findViewById(R.id.SelectLocationbtn);
        Select.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                PlacePicker.IntentBuilder builder = new PlacePicker.IntentBuilder();

                try {

                    Intent intent = builder.build(MainActivity.this);
                    startActivityForResult(intent,PLACE_PICKER_REQUEST);
                } catch (GooglePlayServicesRepairableException e) {
                    e.printStackTrace();

                } catch (GooglePlayServicesNotAvailableException e) {
                    e.printStackTrace();
                }

            }
        });


        Submit = (Button)findViewById(R.id.Submitbtn);
        Submit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

            }
        });

    }
    protected void OnActivityResult(int requestCode,int resultCode,Intent data){
        super.onActivityResult(requestCode,resultCode,data);

        if(requestCode==PLACE_PICKER_REQUEST){

            if(resultCode== RESULT_FIRST_USER){
                Place place = PlacePicker.getPlace(data, MainActivity.this);
                String name = String.format("Place: %s",place.getName());
                location.setText(name);

            }

        }


    }
}

最佳答案

问题出在 OnActivityResult() 中的大写 O;

使用@Override 注释是个好主意,以确保您重写您打算重写的方法:

@Override
protected void onActivityResult(int requestCode,int resultCode,Intent data){
    super.onActivityResult(requestCode,resultCode,data);

    if(requestCode==PLACE_PICKER_REQUEST){

        if(resultCode== RESULT_FIRST_USER){
            Place place = PlacePicker.getPlace(data, MainActivity.this);
            String name = String.format("Place: %s",place.getName());
            location.setText(name);

        }

    }
}

关于java - 难以从使用谷歌地图地点选择器 API 获得的位置传递数据并将其发送到 textView 以供用户查看位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45132620/

相关文章:

java - 读/写 xBASE (DBASE 3-5/DBF) 文件

java - 为什么我的 JSlider 没有显示在我的 java GUI 中?

安卓jpg动画

java - 如何以编程方式在二维数组中插入值?

ios - Google Places API for IOS 未设置本地化语言

java - mongodriver 按升序排列

Java 泛型不兼容类型链表迭代器

android - 如何覆盖 buildTypes 中的 defaultConfig abiFilters

firebase-realtime-database - Firebase 日志中的错误 : Warning, 估计基于 GCLOUD_PROJECT 的 Firebase 配置。初始化 firebase-admin 可能会失败

android - Google 的新位置库(实现 'com.google.android.libraries.places:1.0.0')未解析