Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.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 在主屏幕中显示JSON数据_Android_Json_Listview_Floating Action Button - Fatal编程技术网

Android 在主屏幕中显示JSON数据

Android 在主屏幕中显示JSON数据,android,json,listview,floating-action-button,Android,Json,Listview,Floating Action Button,json数据仅在单击浮动操作按钮时显示,我想直接在主屏幕上显示json数据,而不是通过浮动操作按钮,如何做到这一点 这是我的密码 main_activity.java 公共类MainActivity扩展了AppCompatActivity{ 私有列表视图列表视图; 私有数组列表; 专用MyArrayAdapter适配器; @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setConte

json数据仅在单击浮动操作按钮时显示,我想直接在主屏幕上显示json数据,而不是通过浮动操作按钮,如何做到这一点

这是我的密码

main_activity.java

公共类MainActivity扩展了AppCompatActivity{
私有列表视图列表视图;
私有数组列表;
专用MyArrayAdapter适配器;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar Toolbar=(Toolbar)findViewById(R.id.Toolbar);
设置支持操作栏(工具栏);
/**  
*用于将数据从JSON绑定到此列表的数组列表
*/  
列表=新的ArrayList();
/**  
*将该列表绑定到适配器
*/  
适配器=新的MyArrayAdapter(此,列表);
/**  
*获取列表和设置列表适配器
*/  
listView=(listView)findViewById(R.id.listView);
setAdapter(适配器);
listView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、int位置、长id){
Snackbar.make(findviewbyd(R.id.parentLayout),list.get(position).getName()+“=>”+list.get(position).getPhone(),Snackbar.LENGTH_LONG.show();
}  
});  
/**  
*只需知道在中心单击并打印Hello Toast。
*/  
Toast Toast=Toast.makeText(getApplicationContext(),”单击
FloatingActionButton加载JSON”,Toast.LENGTH\u LONG);
toast.setGravity(Gravity.CENTER,0,0);
toast.show();
FloatingActionButton fab=(FloatingActionButton)findViewById(R.id.fab);
fab.setOnClickListener(新视图.OnClickListener(){
@凌驾
public void onClick(@NonNull视图){
/**  
*检查Internet连接
*/  
if(InternetConnection.checkConnection(getApplicationContext()){
新建GetDataTask().execute();
}否则{
Snackbar.make(查看“Internet连接不可用”,Snackbar.LENGTH_LONG.show();
}  
}  
});  
}  
/**  
*创建获取数据任务以从Web获取数据
*/  
类GetDataTask扩展了AsyncTask{
进程对话;
@凌驾
受保护的void onPostExecute(void aVoid){
super.onPostExecute(避免);
dialog.dismise();
/**  
*检查列表大小是否大于零,然后
*更新列表视图
*/  
如果(list.size()>0){
adapter.notifyDataSetChanged();
}否则{
Snackbar.make(findviewbyd(R.id.parentLayout),“未找到数据”,Snackbar.LENGTH_LONG.show();
}  
}  
}  
}
activity_main.xml

<?xml version="1.0" encoding="utf-8"?>  
<android.support.design.widget.CoordinatorLayout   
xmlns:android="http://schemas.android.com/apk/res/android"  
xmlns:app="http://schemas.android.com/apk/res-auto"  
xmlns:tools="http://schemas.android.com/tools"  
android:layout_width="match_parent"  
android:id="@+id/parentLayout"  
android:layout_height="match_parent"  
android:fitsSystemWindows="true"  
tools:context=".MainActivity">  

<android.support.design.widget.AppBarLayout  
 android:layout_width="match_parent"  
 android:layout_height="wrap_content"  
 android:theme="@style/AppTheme.AppBarOverlay">  

 <android.support.v7.widget.Toolbar  
   android:id="@+id/toolbar"  
   android:layout_width="match_parent"  
   android:layout_height="?attr/actionBarSize"  
   android:background="?attr/colorPrimary"  
   app:popupTheme="@style/AppTheme.PopupOverlay" />  

 </android.support.design.widget.AppBarLayout>  
 <ListView app:layout_behavior="@string/appbar_scrolling_view_behavior"  
    android:id="@+id/listView"  
    android:layout_width="fill_parent"  
    android:layout_height="match_parent" />  

<android.support.design.widget.FloatingActionButton  
 android:id="@+id/fab"  
 android:layout_width="wrap_content"  
 android:layout_height="wrap_content"  
 android:layout_gravity="bottom|end"  
 android:layout_margin="@dimen/fab_margin"  
 android:src="@android:drawable/stat_sys_download" />  

</android.support.design.widget.CoordinatorLayout>


谢谢。

只需将下面的代码从
onClick()
移动到
onCreate()
方法:

 if (InternetConnection.checkConnection(getApplicationContext())) {  
   new GetDataTask().execute();  
 } else {  
   Snackbar.make(view, "Internet Connection Not Available", Snackbar.LENGTH_LONG).show();  
 }
u将您的
main活动日期记录如下:

public class MainActivity extends AppCompatActivity {

    private ListView listView;
    private ArrayList<MyDataModel> list;
    private MyArrayAdapter adapter;

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

        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        /**
         * Array List for Binding Data from JSON to this List  
         */
        list = new ArrayList<>();
        /**
         * Binding that List to Adapter  
         */
        adapter = new MyArrayAdapter(this, list);

        /**
         * Getting List and Setting List Adapter  
         */
        listView = (ListView) findViewById(R.id.listView);
        listView.setAdapter(adapter);
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Snackbar.make(findViewById(R.id.parentLayout), list.get(position).getName() + " => " + list.get(position).getPhone(), Snackbar.LENGTH_LONG).show();
            }
        });

        /**
         * Just to know onClick and Printing Hello Toast in Center.  
         */
        Toast toast = Toast.makeText(getApplicationContext(), "Click on FloatingActionButton to Load JSON", Toast.LENGTH_LONG);  
                toast.setGravity(Gravity.CENTER, 0, 0);
        toast.show();

        /**
         * Checking Internet Connection  
         */
        if (InternetConnection.checkConnection(getApplicationContext())) {
            new GetDataTask().execute();
        } else {
            Snackbar.make(view, "Internet Connection Not Available", Snackbar.LENGTH_LONG).show();
        }

        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(@NonNull View view) {

                // Do something...
            }
        });
    }

    /**
     * Creating Get Data Task for Getting Data From Web  
     */
    class GetDataTask extends AsyncTask<Void, Void, Void> {

        ProgressDialog dialog;

        @Override
        protected void onPostExecute(Void aVoid) {
            super.onPostExecute(aVoid);
            dialog.dismiss();
            /**
             * Checking if List size if more than zero then  
             * Update ListView  
             */
            if(list.size() > 0) {
                adapter.notifyDataSetChanged();
            } else {
                Snackbar.make(findViewById(R.id.parentLayout), "No Data Found", Snackbar.LENGTH_LONG).show();
            }
        }
    }
}
public类MainActivity扩展了AppCompatActivity{
私有列表视图列表视图;
私有数组列表;
专用MyArrayAdapter适配器;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar Toolbar=(Toolbar)findViewById(R.id.Toolbar);
设置支持操作栏(工具栏);
/**
*用于将数据从JSON绑定到此列表的数组列表
*/
列表=新的ArrayList();
/**
*将该列表绑定到适配器
*/
适配器=新的MyArrayAdapter(此,列表);
/**
*获取列表和设置列表适配器
*/
listView=(listView)findViewById(R.id.listView);
setAdapter(适配器);
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
Snackbar.make(findviewbyd(R.id.parentLayout),list.get(position).getName()+“=>”+list.get(position).getPhone(),Snackbar.LENGTH_LONG.show();
}
});
/**
*只需知道在中心单击并打印Hello Toast。
*/
Toast Toast=Toast.makeText(getApplicationContext(),“单击FloatingActionButton加载JSON”,Toast.LENGTH\u LONG);
toast.setGravity(Gravity.CENTER,0,0);
toast.show();
/**
*检查Internet连接
*/
if(InternetConnection.checkConnection(getApplicationContext())){
新建GetDataTask().execute();
}否则{
Snackbar.make(查看“Internet连接不可用”,Snackbar.LENGTH_LONG.show();
}
FloatingActionButton fab=(FloatingActionButton)findViewById(R.id.fab);
fab.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(@NonNull视图){
//做点什么。。。
}
});
}
/**
*创建获取数据任务以从Web获取数据
*/
类GetDataTask扩展了AsyncTask{
进程对话;
@凌驾
受保护的void onPostExecute(void避免){
super.onPostExecute(避免);
dialog.dismise();
/**
*检查列表大小是否大于零,然后
*更新列表视图
*/
如果(list.size()>0){
adapter.notifyDataSetChanged();
}否则{
Snackbar.make(findviewbyd(R.id.parentLayout),“未找到数据”,Snackbar.LENGTH_LONG.show();
}
}
}
}

您是否尝试过我的解决方案?你想要什么样的例子?谢谢你接受我的回答。如果我的回答似乎有用,我希望你能投赞成票。谢谢:)
public class MainActivity extends AppCompatActivity {

    private ListView listView;
    private ArrayList<MyDataModel> list;
    private MyArrayAdapter adapter;

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

        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        /**
         * Array List for Binding Data from JSON to this List  
         */
        list = new ArrayList<>();
        /**
         * Binding that List to Adapter  
         */
        adapter = new MyArrayAdapter(this, list);

        /**
         * Getting List and Setting List Adapter  
         */
        listView = (ListView) findViewById(R.id.listView);
        listView.setAdapter(adapter);
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Snackbar.make(findViewById(R.id.parentLayout), list.get(position).getName() + " => " + list.get(position).getPhone(), Snackbar.LENGTH_LONG).show();
            }
        });

        /**
         * Just to know onClick and Printing Hello Toast in Center.  
         */
        Toast toast = Toast.makeText(getApplicationContext(), "Click on FloatingActionButton to Load JSON", Toast.LENGTH_LONG);  
                toast.setGravity(Gravity.CENTER, 0, 0);
        toast.show();

        /**
         * Checking Internet Connection  
         */
        if (InternetConnection.checkConnection(getApplicationContext())) {
            new GetDataTask().execute();
        } else {
            Snackbar.make(view, "Internet Connection Not Available", Snackbar.LENGTH_LONG).show();
        }

        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(@NonNull View view) {

                // Do something...
            }
        });
    }

    /**
     * Creating Get Data Task for Getting Data From Web  
     */
    class GetDataTask extends AsyncTask<Void, Void, Void> {

        ProgressDialog dialog;

        @Override
        protected void onPostExecute(Void aVoid) {
            super.onPostExecute(aVoid);
            dialog.dismiss();
            /**
             * Checking if List size if more than zero then  
             * Update ListView  
             */
            if(list.size() > 0) {
                adapter.notifyDataSetChanged();
            } else {
                Snackbar.make(findViewById(R.id.parentLayout), "No Data Found", Snackbar.LENGTH_LONG).show();
            }
        }
    }
}