Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.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 将字符串传递给AsyncTask类_Java_Android_Android Asynctask - Fatal编程技术网

Java 将字符串传递给AsyncTask类

Java 将字符串传递给AsyncTask类,java,android,android-asynctask,Java,Android,Android Asynctask,我有下面的班级 public class Faculty extends Activity { JSONObject jsonobject; JSONArray jsonarray; ListView listview; ListViewAdapter adapter; ProgressDialog mProgressDialog; ArrayList<HashMap<String, String>> arraylist;

我有下面的班级

public class Faculty extends Activity {

    JSONObject jsonobject;
    JSONArray jsonarray;
    ListView listview;
    ListViewAdapter adapter;
    ProgressDialog mProgressDialog;
    ArrayList<HashMap<String, String>> arraylist;
    static String NAME = "name";
    static String DESIGNATION = "designation";
    //static String POPULATION = "population";
    static String FAC_IMG = "fac_img";
    static String url;


    @Override
    public void onCreate(Bundle savedInstantState){
        super.onCreate(savedInstantState);
        // Get the view from listview_main.xml
        setContentView(R.layout.faculty_list);
        String data = getIntent().getStringExtra("Dpmt");
        if(data.equals("DOCScience")){
            url="Department%20Of%20Computer%20Science";
        }
        if(data.equals("DOIT")){
            url="Department%20Of%20Information%20%26%20Technology";
        }
        // Execute DownloadJSON AsyncTask
        new DownloadJSON().execute(url);

        //String url="http://192.168.170.89/bbau_faculty.php?dept="+Dept;
    }
    private class DownloadJSON extends AsyncTask<String, Void, Void> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            // Create a progressdialog
            mProgressDialog = new ProgressDialog(Faculty.this);
            // Set progressdialog title
            //mProgressDialog.setTitle("Android JSON Parse Tutorial");
            // Set progressdialog message
            mProgressDialog.setMessage("Loading...");
            mProgressDialog.setIndeterminate(false);
            // Show progressdialog
            mProgressDialog.show();
        }

        @Override
        protected Void doInBackground(String... params) {
            // Create an array
            arraylist = new ArrayList<HashMap<String, String>>();
            String url1=params[0];
            // Retrieve JSON Objects from the given URL address
            System.out.println(url1);
            jsonobject = JSONfunctions.getJSONfromURL("http://192.168.170.89/bbau_faculty.php?dept="+url1);
在DownloadJSON类中,方法

doInBackground(String…params)
我想接收传入的url
execute(url)

但是
url1
打印为空

但url1打印为空

你的做法是正确的。如果您将null作为值接收,则在您的情况下,这意味着

String data = getIntent().getStringExtra("Dpmt");

既不是
DOCScience
也不是
DOIT
,而且
url
仍然用默认值初始化(声明为类成员的
String
为null)

可能是因为数据永远不等于DOCScience或DOIT。确保使用正确的键获取和设置数据。设置时数据也可能是“”。

在将其传递给
异步任务之前,请尝试检查
url
值:

if(url !=null && url.trim().length()>0){
  new DownloadJSON().execute(url);
}
如果检查数据值
DOCScience
DOIT
,则也使用
else if
前导,而不是多个
if

if(data.equals("DOCScience")){
   url="Department%20Of%20Computer%20Science";
}else if(data.equals("DOIT")){
   url="Department%20Of%20Information%20%26%20Technology";
}else{
  // no match
}

如果(data.equals(“DOIT”)返回true???选中此复选框-案例与DOCScience匹配,即在行new DownloadJSON().execute(url)之前;检查你是否拼错了这个词。我强烈建议您在new DownloadJSON().execute(url)一行之前开始使用constants;如果我打印url,我得到的是部门%20Of%20Computer%20Science,这意味着其中一条if语句为true,但我在DoinBackgroundTask中得到的url1=null检查字符串是否拼写错误,是否包含尾随和/或前导空格。记住,在new DownloadJSON().execute(url)行之前,equals是区分大小写的;如果我打印url,我得到的是部门%20Of%20Computer%20Science,这意味着其中一条if语句为true,但我在doinBackgroundTask中得到的url1=null
if(url !=null && url.trim().length()>0){
  new DownloadJSON().execute(url);
}
if(data.equals("DOCScience")){
   url="Department%20Of%20Computer%20Science";
}else if(data.equals("DOIT")){
   url="Department%20Of%20Information%20%26%20Technology";
}else{
  // no match
}