Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.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
Java 刷新活动内容或添加刷新按钮_Java_Android_Refresh - Fatal编程技术网

Java 刷新活动内容或添加刷新按钮

Java 刷新活动内容或添加刷新按钮,java,android,refresh,Java,Android,Refresh,例如,由于我可以刷新“活动”的内容,因此我有一个菜单和一个按钮,可以向我发送一个在线显示信息的应用程序内容,但要返回并再次返回,信息不会更新 这是我的活动 public class Bovalpo extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.act

例如,由于我可以刷新“活动”的内容,因此我有一个菜单和一个按钮,可以向我发送一个在线显示信息的应用程序内容,但要返回并再次返回,信息不会更新

这是我的活动

public class Bovalpo extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_bovalpo);

    Button buttonExit = (Button)this.findViewById(R.id.cerrar);
    buttonExit.setOnClickListener(
        new View.OnClickListener() {
            public void onClick(View v) {
                System.exit(0);
            }
        }
    );


    TextView myListView = (TextView) findViewById(R.id.tv);
    try {
        myListView.setText(getPage());
        if(getPage().contains("Abierto")){
            myListView.setTextColor(Color.parseColor("#008000"));
        }else{
            myListView.setTextColor(Color.parseColor("#FF0000"));
        }
    } catch (MalformedURLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    }

private String getPage() throws MalformedURLException, IOException {
    HttpURLConnection con = (HttpURLConnection) new URL("http://www.bovalpo.com/cgi-local/xml_bcv.pl?URL=1").openConnection();
    con.connect();

    if (con.getResponseCode() == HttpURLConnection.HTTP_OK) {
        return inputStreamToString(con.getInputStream());
    } else {
        return null;
    }
}


private String inputStreamToString(InputStream in) throws IOException {
    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(in));
    StringBuilder stringBuilder = new StringBuilder();
    String line = null;

    while ((line = bufferedReader.readLine()) != null) {
        stringBuilder.append("Mercado: " + line + "\n");
    }

    bufferedReader.close();
    return stringBuilder.toString();
}



public void lanzar(View view){
 Intent i = new Intent(this, xml7009.class);
 startActivity(i);
}


public void lanzar3(View view){
 Intent i = new Intent(this, tabla7009.class);
 startActivity(i);
} 

public void lanzar4(View view){
    Intent i = new Intent(this, xml6503.class);
    startActivity(i);
}

public void  onClick(View arg0) {
      // TODO Auto-generated method stub
      finish();
    }  

}

如果您想在每次参加“活动”时更新数据,则需要在onResume中设置更新后的值

如下

@Override
        protected void onResume() {
            super.onResume();

                 try {
                      myListView.setText(getPage());
                      if(getPage().contains("Abierto")){
                       myListView.setTextColor(Color.parseColor("#008000"));
                      }else{
                       myListView.setTextColor(Color.parseColor("#FF0000"));
                      }
                      } catch (MalformedURLException e) {
                         // TODO Auto-generated catch block
                         e.printStackTrace();
                        } catch (IOException e) {
                     // TODO Auto-generated catch block
                       e.printStackTrace();
        }
    }

如果希望每次显示“活动”时都运行,则获取数据并设置列表视图颜色的代码应放在
onResume()
中,而不是
onCreate

将代码放在此处

@Override
protected void onResume() {
    // TODO Auto-generated method stub
    super.onResume();

       // make your work to data bind


}

只需将更新代码放入活动的方法中即可。当您从其他活动返回时,将调用OnResume()方法。 但是,例如,当您的活动是resume时,通常会调用onResume()方法。如果打开并关闭对话框,则活动将继续。因此,如果您在Resume上调用某些网络调用,那么它将消耗进程和网络速度

另一种解决方案是使用方法接收下一个活动的结果,并根据活动结果调用web API或任何工作。您可以在方法中获得下一个活动的结果。
但是在使用startActivityForResult方法之前,请确保下一个活动将通过调用方法来设置结果。

onResume()
onStart()
更适合在用户每次根据返回时更新活动。但是当按下按钮并返回到按钮所在的位置时,背景里有活动吗?是的,我觉得太频繁了。但这是正确的,onResume比onStart更好。请注意,在UI线程上执行IO(就像调用
getPage()
时在
onCreate()
中所做的那样)可能会导致Android强制关闭您的应用程序。查看如何在单独的线程中执行IO。这也将使您的UI更具响应性。这同样适用于任何其他生命周期方法,如
onStart()
onResume()
,等等。同样,不要在这些方法中执行IO。