Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我的应用程序没有';平板电脑上什么也看不出来_Android_Responsive Design_Tablet - Fatal编程技术网

Android 我的应用程序没有';平板电脑上什么也看不出来

Android 我的应用程序没有';平板电脑上什么也看不出来,android,responsive-design,tablet,Android,Responsive Design,Tablet,我的应用程序在移动设备上运行得非常完美,但当我尝试在平板电脑上运行时,它不会显示任何错误,而是在Genymotion Emulator(谷歌Nexus 9)上运行。 我将在这里发布我的日志、代码和Xml_布局 这也会出现在我的事件日志中 12:17:25 PM Can't bind to local 8636 for debugger 12:17:28 PM An established connection was aborted by the software in your host ma

我的应用程序在移动设备上运行得非常完美,但当我尝试在平板电脑上运行时,它不会显示任何错误,而是在Genymotion Emulator(谷歌Nexus 9)上运行。
我将在这里发布我的日志、代码和Xml_布局

这也会出现在我的事件日志中

12:17:25 PM Can't bind to local 8636 for debugger
12:17:28 PM An established connection was aborted by the software in your host machine
        java.io.IOException: An established connection was aborted by the software in your host machine
修甲师

<?xml version="1.0" encoding="utf-8"?>
主要活动

public class MainActivity extends AppCompatActivity {

public static final String popluar = "popularity.desc";
public static final String top_rate = "vote_average.desc";
public static Context context;
public static ArrayList<Movie> movies = new ArrayList<>();
public static FragmentManager fm;
public static Configuration config;


public static String id;
public static String title;
public static String releaseDate;
public static String overView;
public static String voteAverage;
public static String popularity;
public static String poster;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    context = MainActivity.this;
    fm = getSupportFragmentManager();
    config = getResources().getConfiguration();

    ReplaceFragments(popluar);


}

public static boolean isTablet() {
    if (config.smallestScreenWidthDp >= 600) {
        return true;
    }else {
        return false;
    }
}

public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();

    if (id == R.id.most_popular) {
        ReplaceFragments(popluar);
        return true;
    }
    if (id == R.id.highest_rated) {
        ReplaceFragments(top_rate);
        return true;
    }
    if (id == R.id.favorite) {
        ReplaceFragments("fav");
        return true;
    }
    return super.onOptionsItemSelected(item);
}

private void ReplaceFragments(String SortBy) {
    if (isTablet()){
        MainFragment mainFragment = MainFragment.newInstance(SortBy);
        getSupportFragmentManager().beginTransaction().replace(R.id.tabletMain, mainFragment)
                .commit();
    }else{
        MainFragment mainFragment = MainFragment.newInstance(SortBy);
        getSupportFragmentManager().beginTransaction().replace(R.id.fragmentMain, mainFragment)
                .commit();
    }

}

public static void showDetails(int position) {
    id = movies.get(position).getId();
    title = movies.get(position).getTitle();
    releaseDate = movies.get(position).getReleaseDate();
    overView = movies.get(position).getOverView();
    voteAverage = movies.get(position).getVoteAverage();
    popularity = movies.get(position).getPopularity();
    poster = movies.get(position).getLargePoster();

    if (isTablet()) {
        DetailFragment detailFragment = new DetailFragment();
        fm.beginTransaction().replace(R.id.tabletDetail, detailFragment)
                .commit();
    } else {
        Intent intent = new Intent(context, DetailedActivity.class);
        context.startActivity(intent);
    }

}

}
public类MainActivity扩展了AppCompatActivity{
公共静态最终字符串popluar=“popularity.desc”;
公共静态最终字符串top\u rate=“vote\u average.desc”;
公共静态语境;
public static ArrayList movies=new ArrayList();
公共静态碎片管理器fm;
公共静态配置;
公共静态字符串id;
公共静态字符串标题;
公共静态字符串releaseDate;
公共静态字符串概述;
公共静态字符串平均值;
公共静态字符串流行;
公共静态字符串海报;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar Toolbar=(Toolbar)findViewById(R.id.Toolbar);
设置支持操作栏(工具栏);
context=MainActivity.this;
fm=getSupportFragmentManager();
config=getResources().getConfiguration();
替换片段(popluar);
}
公共静态布尔值isTablet(){
如果(config.smallestScreenWidthDp>=600){
返回true;
}否则{
返回false;
}
}
公共布尔onCreateOptions菜单(菜单){
getMenuInflater().充气(右菜单菜单菜单主菜单);
返回true;
}
公共布尔值onOptionsItemSelected(菜单项项){
int id=item.getItemId();
if(id==R.id.most_popular){
替换片段(popluar);
返回true;
}
如果(id==R.id.最高额定值){
更换碎片(最高价格);
返回true;
}
if(id==R.id.favorite){
替换碎片(“fav”);
返回true;
}
返回super.onOptionsItemSelected(项目);
}
私有void ReplaceFragments(字符串排序){
if(isTablet()){
MainFragment MainFragment=MainFragment.newInstance(排序);
getSupportFragmentManager().beginTransaction().replace(R.id.tabletMain,mainFragment)
.commit();
}否则{
MainFragment MainFragment=MainFragment.newInstance(排序);
getSupportFragmentManager().beginTransaction().replace(R.id.fragmentMain,mainFragment)
.commit();
}
}
公共静态无效显示详细信息(内部位置){
id=movies.get(position.getId();
title=movies.get(position.getTitle();
releaseDate=movies.get(position.getReleaseDate();
overView=movies.get(position.getOverView();
voteAverage=movies.get(position.getVoteAverage();
流行度=电影。get(position)。GetPosition();
poster=movies.get(position.getLargePoster();
if(isTablet()){
DetailFragment DetailFragment=新的DetailFragment();
fm.beginTransaction().replace(R.id.tabletDetail,detailFragment)
.commit();
}否则{
意向意向=新意向(上下文,DetailedActivity.class);
背景。开始触觉(意图);
}
}
}
主要片段

public class MainFragment extends Fragment {

public final static String API_KEY = "b932ba435fc93a5944938fe9d44cd198";
public final String BASE_URL = "http://api.themoviedb.org/3/discover/movie?sort_by=&api_key=";

movieAdapter adapter;
movieAdapter DbAdapter;
GridView gridview;
DbOpenHelper dbOpenHelper;
Context context;
String sortOrder;


public MainFragment() {
}

public static MainFragment newInstance(String sortOrder) {
    Bundle args = new Bundle();
    args.putString("SORT", sortOrder);
    MainFragment fragment = new MainFragment();
    fragment.setArguments(args);
    return fragment;
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (getArguments() != null) {
        sortOrder = getArguments().getString("SORT");
        if (sortOrder == "fav") {
            new FetchDataFromDb().execute();
        } else {
            new FetchDataFromApi(sortOrder).execute();
        }
    }
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_main, container, false);
    gridview = (GridView) view.findViewById(R.id.gridView);
    context = getActivity();
    adapter = new movieAdapter(context, R.layout.movie_item, MainActivity.movies);
    return view;
}

class FetchDataFromApi extends AsyncTask<String, Void, Boolean> {
    String SORT_CATEGORY;

    FetchDataFromApi(String paramUrl) {
        SORT_CATEGORY = paramUrl;
    }

    @Override
    protected Boolean doInBackground(String... params) {
        HttpURLConnection urlConnection = null;
        try {
            Uri uriBuilder = Uri.parse(BASE_URL).buildUpon()
                    .appendQueryParameter("sort_by", SORT_CATEGORY)
                    .appendQueryParameter("api_key", API_KEY)
                    .build();
            URL url = new URL(uriBuilder.toString());
            urlConnection = (HttpURLConnection) url.openConnection();

            InputStream in = urlConnection.getInputStream();
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(in));
            StringBuilder sb = new StringBuilder();
            String line;
            while ((line = bufferedReader.readLine()) != null) {
                sb.append(line);
            }
            String response = sb.toString();
            ParseJsonData(response);
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (JSONException e) {
            e.printStackTrace();
        } finally {
            urlConnection.disconnect();
        }
        return null;
    }

    @Override
    protected void onPostExecute(Boolean result) {
        super.onPostExecute(result);
        gridview.setAdapter(adapter);
        Log.v("debug", String.valueOf(gridview.getAdapter()));
        if (MainActivity.isTablet()) {
            /*MainActivity.showDetails(0);*/
        }
        gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long ss) {
                MainActivity.showDetails(position);
            }
        });
    }
}

private void ParseJsonData(String response) throws JSONException {
    String PosterBaseUrl = "http://image.tmdb.org/t/p/";
    String LargePoster = "w185";
    String SmallPoster = "";
    final String RESULTS = "results";
    final String ORIGINAL_TITLE = "original_title";
    final String OVERVIEW = "overview";
    final String RELEASE_DATE = "release_date";
    final String POSTER_PATH = "poster_path";
    final String VOTE_AVERAGE = "vote_average";
    final String POPULARITY = "popularity";
    final String ID = "id";

    MainActivity.movies.clear();

    JSONObject jsono = new JSONObject(response);
   // Log.v("Json", response);
    JSONArray jarray = jsono.getJSONArray(RESULTS);
    for (int i = 0; i < jarray.length(); i++) {
        JSONObject object = jarray.getJSONObject(i);
        String id = object.getString(ID);
        String title = object.getString(ORIGINAL_TITLE);
        String releaseDate = object.getString(RELEASE_DATE);
        String overView = object.getString(OVERVIEW);
        String voteAverage = object.getString(VOTE_AVERAGE);
        String popularity = object.getString(POPULARITY);
        String posterPath = object.getString(POSTER_PATH);
        String BigPoster = PosterBaseUrl + LargePoster + posterPath;
        String MinPoster = PosterBaseUrl + SmallPoster + posterPath;

        Movie m = new Movie();
        m.setId(id);
        m.setTitle(title);
        m.setReleaseDate(releaseDate);
        m.setOverView(overView);
        m.setVoteAverage(voteAverage);
        m.setPopularity(popularity);
        m.setLargePoster(BigPoster);
        m.setMinPoster(MinPoster);
        MainActivity.movies.add(m);
    }
}

class FetchDataFromDb extends AsyncTask<String, Void, Boolean> {

    @Override
    protected Boolean doInBackground(String... params) {
        dbOpenHelper = new DbOpenHelper(MainActivity.context);
        MainActivity.movies = dbOpenHelper.getAllFavoritePosters();
        return null;
    }

    @Override
    protected void onPostExecute(Boolean aBoolean) {
        super.onPostExecute(aBoolean);
        Log.v("database status", "Finished From Db");
        DbAdapter = new movieAdapter(context, R.layout.movie_item, MainActivity.movies);
        gridview.setAdapter(DbAdapter);
        if (MainActivity.isTablet()) {
            MainActivity.showDetails(0);
        }
        gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long ss) {
                MainActivity.showDetails(position);
            }
        });
    }
}
}
public类MainFragment扩展片段{
公共最终静态字符串API_KEY=“b932ba435fc93a5944938fe9d44cd198”;
公共最终字符串BASE_URL=”http://api.themoviedb.org/3/discover/movie?sort_by=&api_key=";
电影适配器;
电影适配器;
GridView;
DbOpenHelper-DbOpenHelper;
语境;
字符串排序器;
公共MainFragment(){
}
公共静态MainFragment newInstance(字符串排序器){
Bundle args=新Bundle();
args.putString(“SORT”,sortOrder);
MainFragment=新的MainFragment();
fragment.setArguments(args);
返回片段;
}
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
如果(getArguments()!=null){
sortOrder=getArguments().getString(“排序”);
如果(排序器==“fav”){
新建FetchDataFromDb().execute();
}否则{
新的FetchDataFromApi(sortOrder).execute();
}
}
}
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
视图=充气机。充气(R.layout.fragment_main,容器,假);
gridview=(gridview)view.findViewById(R.id.gridview);
context=getActivity();
adapter=新电影适配器(上下文,R.layout.movie_项,MainActivity.movies);
返回视图;
}
类FetchDataFromApi扩展了AsyncTask{
字符串分类;
FetchDataFromApi(字符串参数URL){
SORT_CATEGORY=paramUrl;
}
@凌驾
受保护的布尔doInBackground(字符串…参数){
HttpURLConnection-urlConnection=null;
试一试{
Uri-uriBuilder=Uri.parse(BASE_-URL).buildon()
.appendQueryParameter(“排序依据”,排序类别)
.appendQueryParameter(“api_键”,api_键)
.build();
URL=新URL(uriBuilder.toString());
urlConnection=(HttpURLConnection)url.openConnection();
InputStream in=urlConnection.getInputStream();
BufferedReader BufferedReader=新的BufferedReader(新的InputStreamReader(in));
StringBuilder sb=新的StringBuilder();
弦线;
而((line=bufferedReader.readLine())!=null){
某人附加(行);
}
字符串响应=sb.toString();
ParseJsonData(应答);
}捕获(格式错误){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}捕获(JSONException e){
e、 printStackTrace();
}最后{
urlConnection.disconnect();
}
返回null;
}
@凌驾
受保护的void onPostExecute(布尔结果){
super.onPostExecute(结果);
网格视图
public class MainActivity extends AppCompatActivity {

public static final String popluar = "popularity.desc";
public static final String top_rate = "vote_average.desc";
public static Context context;
public static ArrayList<Movie> movies = new ArrayList<>();
public static FragmentManager fm;
public static Configuration config;


public static String id;
public static String title;
public static String releaseDate;
public static String overView;
public static String voteAverage;
public static String popularity;
public static String poster;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    context = MainActivity.this;
    fm = getSupportFragmentManager();
    config = getResources().getConfiguration();

    ReplaceFragments(popluar);


}

public static boolean isTablet() {
    if (config.smallestScreenWidthDp >= 600) {
        return true;
    }else {
        return false;
    }
}

public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();

    if (id == R.id.most_popular) {
        ReplaceFragments(popluar);
        return true;
    }
    if (id == R.id.highest_rated) {
        ReplaceFragments(top_rate);
        return true;
    }
    if (id == R.id.favorite) {
        ReplaceFragments("fav");
        return true;
    }
    return super.onOptionsItemSelected(item);
}

private void ReplaceFragments(String SortBy) {
    if (isTablet()){
        MainFragment mainFragment = MainFragment.newInstance(SortBy);
        getSupportFragmentManager().beginTransaction().replace(R.id.tabletMain, mainFragment)
                .commit();
    }else{
        MainFragment mainFragment = MainFragment.newInstance(SortBy);
        getSupportFragmentManager().beginTransaction().replace(R.id.fragmentMain, mainFragment)
                .commit();
    }

}

public static void showDetails(int position) {
    id = movies.get(position).getId();
    title = movies.get(position).getTitle();
    releaseDate = movies.get(position).getReleaseDate();
    overView = movies.get(position).getOverView();
    voteAverage = movies.get(position).getVoteAverage();
    popularity = movies.get(position).getPopularity();
    poster = movies.get(position).getLargePoster();

    if (isTablet()) {
        DetailFragment detailFragment = new DetailFragment();
        fm.beginTransaction().replace(R.id.tabletDetail, detailFragment)
                .commit();
    } else {
        Intent intent = new Intent(context, DetailedActivity.class);
        context.startActivity(intent);
    }

}

}
public class MainFragment extends Fragment {

public final static String API_KEY = "b932ba435fc93a5944938fe9d44cd198";
public final String BASE_URL = "http://api.themoviedb.org/3/discover/movie?sort_by=&api_key=";

movieAdapter adapter;
movieAdapter DbAdapter;
GridView gridview;
DbOpenHelper dbOpenHelper;
Context context;
String sortOrder;


public MainFragment() {
}

public static MainFragment newInstance(String sortOrder) {
    Bundle args = new Bundle();
    args.putString("SORT", sortOrder);
    MainFragment fragment = new MainFragment();
    fragment.setArguments(args);
    return fragment;
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (getArguments() != null) {
        sortOrder = getArguments().getString("SORT");
        if (sortOrder == "fav") {
            new FetchDataFromDb().execute();
        } else {
            new FetchDataFromApi(sortOrder).execute();
        }
    }
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_main, container, false);
    gridview = (GridView) view.findViewById(R.id.gridView);
    context = getActivity();
    adapter = new movieAdapter(context, R.layout.movie_item, MainActivity.movies);
    return view;
}

class FetchDataFromApi extends AsyncTask<String, Void, Boolean> {
    String SORT_CATEGORY;

    FetchDataFromApi(String paramUrl) {
        SORT_CATEGORY = paramUrl;
    }

    @Override
    protected Boolean doInBackground(String... params) {
        HttpURLConnection urlConnection = null;
        try {
            Uri uriBuilder = Uri.parse(BASE_URL).buildUpon()
                    .appendQueryParameter("sort_by", SORT_CATEGORY)
                    .appendQueryParameter("api_key", API_KEY)
                    .build();
            URL url = new URL(uriBuilder.toString());
            urlConnection = (HttpURLConnection) url.openConnection();

            InputStream in = urlConnection.getInputStream();
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(in));
            StringBuilder sb = new StringBuilder();
            String line;
            while ((line = bufferedReader.readLine()) != null) {
                sb.append(line);
            }
            String response = sb.toString();
            ParseJsonData(response);
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (JSONException e) {
            e.printStackTrace();
        } finally {
            urlConnection.disconnect();
        }
        return null;
    }

    @Override
    protected void onPostExecute(Boolean result) {
        super.onPostExecute(result);
        gridview.setAdapter(adapter);
        Log.v("debug", String.valueOf(gridview.getAdapter()));
        if (MainActivity.isTablet()) {
            /*MainActivity.showDetails(0);*/
        }
        gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long ss) {
                MainActivity.showDetails(position);
            }
        });
    }
}

private void ParseJsonData(String response) throws JSONException {
    String PosterBaseUrl = "http://image.tmdb.org/t/p/";
    String LargePoster = "w185";
    String SmallPoster = "";
    final String RESULTS = "results";
    final String ORIGINAL_TITLE = "original_title";
    final String OVERVIEW = "overview";
    final String RELEASE_DATE = "release_date";
    final String POSTER_PATH = "poster_path";
    final String VOTE_AVERAGE = "vote_average";
    final String POPULARITY = "popularity";
    final String ID = "id";

    MainActivity.movies.clear();

    JSONObject jsono = new JSONObject(response);
   // Log.v("Json", response);
    JSONArray jarray = jsono.getJSONArray(RESULTS);
    for (int i = 0; i < jarray.length(); i++) {
        JSONObject object = jarray.getJSONObject(i);
        String id = object.getString(ID);
        String title = object.getString(ORIGINAL_TITLE);
        String releaseDate = object.getString(RELEASE_DATE);
        String overView = object.getString(OVERVIEW);
        String voteAverage = object.getString(VOTE_AVERAGE);
        String popularity = object.getString(POPULARITY);
        String posterPath = object.getString(POSTER_PATH);
        String BigPoster = PosterBaseUrl + LargePoster + posterPath;
        String MinPoster = PosterBaseUrl + SmallPoster + posterPath;

        Movie m = new Movie();
        m.setId(id);
        m.setTitle(title);
        m.setReleaseDate(releaseDate);
        m.setOverView(overView);
        m.setVoteAverage(voteAverage);
        m.setPopularity(popularity);
        m.setLargePoster(BigPoster);
        m.setMinPoster(MinPoster);
        MainActivity.movies.add(m);
    }
}

class FetchDataFromDb extends AsyncTask<String, Void, Boolean> {

    @Override
    protected Boolean doInBackground(String... params) {
        dbOpenHelper = new DbOpenHelper(MainActivity.context);
        MainActivity.movies = dbOpenHelper.getAllFavoritePosters();
        return null;
    }

    @Override
    protected void onPostExecute(Boolean aBoolean) {
        super.onPostExecute(aBoolean);
        Log.v("database status", "Finished From Db");
        DbAdapter = new movieAdapter(context, R.layout.movie_item, MainActivity.movies);
        gridview.setAdapter(DbAdapter);
        if (MainActivity.isTablet()) {
            MainActivity.showDetails(0);
        }
        gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long ss) {
                MainActivity.showDetails(position);
            }
        });
    }
}
}