Android Studio - 预期表达式

标签 android android-studio

我正在创建一个天气应用程序,并且收到一条消息,指出需要表达式。

这是我的主要 Activity :

package com.haziqhussain.hazweather;

import android.support.v7.app.AppCompatActivity;
import android.text.InputType;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.EditText;

public class WeatherActivity extends AppCompatActivity {

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

    if (savedInstanceState == null) {
        getSupportFragmentManager().beginTransaction()
                .add(R.id.container, new WeatherFragment())
                .commit();
    }



}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    /*int id = item.getItemId();
    if (id == R.id.action_settings) {
        return true;
    }
    return super.onOptionsItemSelected(item);*/
    if(item.getItemId() == R.id.change_city){
        showInputDialog();
    }
    return false;

}


private void showInputDialog(){
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle("Change city");
    final EditText input = new EditText(this);
    input.setInputType(InputType.TYPE_CLASS_TEXT);
    builder.setView(input);
    builder.setPositiveButton("Go", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            changeCity(input.getText().toString());
        }
    });
    builder.show();
}

public void changeCity(String city){
    WeatherFragment wf = (----->WeatherFragment<------).getSupportFragmentManager()
            .findFragmentById(R.id.container);
    wf.changeCity(city);
    new CityPreference(this).setCity(city);
}

}

错误发生在调用天气 fragment 的 Public Void ChangeCity 中。这是一个不断发生的错误,我不确定发生了什么。

最佳答案

使用这个:

public void changeCity(String city){
WeatherFragment wf = (WeatherFragment) getSupportFragmentManager()
        .findFragmentById(R.id.container); // removed '.' 
wf.changeCity(city);
(new CityPreference(this)).setCity(city);

}

关于Android Studio - 预期表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31877293/

相关文章:

java - Android调用数组列表导致程序崩溃

android - 强制调用 Android Activity 的父类(super class)方法?

java - EditText字段获取不正确的输出

java - 没有缓存版本的 com.android.tools.build :aapt2:3. 2.0-alpha18-4804415 可用于离线模式

android-studio - 无法加载 AppCompat ActionBar,出现未知错误。提示: Try to refresh the layout

android - Android Studio 3.4.1 中 "Profile or Debug APK..."选项消失到哪里了?

Android Room DB - 在查询中使用另一个类的静态变量

java - 如何设置Android应用程序兼容不同的Android平台?

android - 无法使用 "fill_parent"获得正确的布局

android - 运行 Linux 的 Chromebook 会处理 android studio 吗?