Android 在主屏幕中显示JSON数据
json数据仅在单击浮动操作按钮时显示,我想直接在主屏幕上显示json数据,而不是通过浮动操作按钮,如何做到这一点 这是我的密码 main_activity.javaAndroid 在主屏幕中显示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
公共类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();
}
}
}
}