【问题标题】:Android Studio - Udacity Lesson1 33-39, not working as it shouldAndroid Studio - Udacity 第 1 课 33-39,无法正常工作
【发布时间】:2015-12-15 05:12:31
【问题描述】:

所以我对 Udacity 教程有疑问 Here is the lesson 我按照说明做每一件事,但我遇到了我不知道如何解决的错误。

这是我的

MainActivity.java

package com.sunshine.elksomik.sunshine;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends AppCompatActivity {

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

    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

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

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}

还有我的

MainActivityFragment

package com.sunshine.elksomik.sunshine;

import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;

/**
 * A placeholder fragment containing a simple view.
 */
public class MainActivityFragment extends Fragment {

    public MainActivityFragment() {
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_main, container, false);
        String[] forecastArray = {
                "Today - Sunny 88/63",
                "Tomorrow - Foggy = 70/40"
        };
        List<String> weekForecast = new ArrayList<String>(
                Arrays.asList(forecastArray)
        );
        mForcastAdapter =
                new ArrayAdapter<String>(
                        getActivity(),
                        R.layout.list_item_forcast,
                        R.id.list_item_forcast_textview,
                        weekForecast);
        ListView listView = (ListView) rootView.findViewById(
                listView.setAdapter(mForacastAdapter);
        );
    }
}

例如,在教程中,ActivityFragment 类或函数在 MainActivity 的一个文件中,但在我的文件中它们是分开的,并且 rootView 甚至不存在,找不到它。

【问题讨论】:

  • 什么错误?运行时错误或语法错误?
  • onCreateView() 那里你直接返回view,应该Declare View view = inflater.inflate(R.layout.fragment_main, container, false);,然后返回Listview下面的view
  • @cwfei 另一件事,为什么我不能定义变量 mForcastAdapter?显示 - 无法解析符号“mForcastAdapter”
  • 从您的代码中,未声明 mForcastAdapter,这就是您出错的原因。
  • @cwfei 好的,谢谢,我是新手

标签: java android android-fragments android-activity android-studio


【解决方案1】:

把你的 onCreateView() 改成这样的

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
   View rootView = inflater.inflate(R.layout.fragment_main, container, false);
          /* write your function 
                   inside here */
   return rootView;
    } 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多