Also ich versuche, zwei API in einer Aktivität zu implementieren, und zeigen Sie die Listview und eine Webansicht für meine zweite API in derselben Aktivität. Ich schaffte es, die Listview herunter zu bekommen. Dies ist Teil der MainActivity wo ich versucheWie können Sie eine Listenansicht und eine Webansicht in einer Aktivität anzeigen?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.twit_list);
activity = this;
Key = getStringFromManifest("CONSUMER_KEY");
Secret = getStringFromManifest("CONSUMER_SECRET");
txtSearch = (EditText) findViewById(R.id.txtSearch);
searchbtn = (Button) findViewById(R.id.searchbtn);
save = (Button) findViewById(R.id.save);
savedSearches = (Button)findViewById(R.id.savedSearches);
searchbtn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){
downloadSearches();
new GoogleSearch();
}
});
save.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
saveSearch();
}
});
savedSearches.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v){
openSavedSearches();
}
});
}
Dies ist die Googlesearch Api public void onCreate (Bundle savedInstanceState) { super.onCreate (savedInstanceState), die beide API durch die onClick-Methode aufrufen beide laufen; setContentView (R.layout.twit_list);
txtSearch = (EditText)webView.findViewById(R.id.txtSearch);
searchbtn = (Button) webView.findViewById(R.id.searchbtn);
webView = (WebView)webView.findViewById(R.id.webView);
searchbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String item = txtSearch.getText().toString();
new JsonSearchTask(item).execute();
}
});
}
private class JsonSearchTask extends AsyncTask<Void, Void, Void> {
String searchResult = "";
String search_url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=";
String search_query;
JsonSearchTask(String item){
try {
search_item = URLEncoder.encode(item, "utf-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
search_query = search_url + search_item;
}
@Override
protected Void doInBackground(Void... arg0) {
try {
searchResult = ParseResult(sendQuery(search_query));
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
@Override
protected void onPreExecute() {
searchbtn.setEnabled(false);
searchbtn.setText("Wait...");
super.onPreExecute();
}
@Override
protected void onPostExecute(Void result) {
webView.loadData(searchResult,
"text/html",
"UTF-8");
searchbtn.setEnabled(true);
searchbtn.setText("Search");
super.onPostExecute(result);
}
}
private String sendQuery(String query) throws IOException{
String result = "";
URL searchURL = new URL(query);
HttpURLConnection httpURLConnection = (HttpURLConnection) searchURL.openConnection();
if(httpURLConnection.getResponseCode() == HttpURLConnection.HTTP_OK){
InputStreamReader inputStreamReader = new InputStreamReader(httpURLConnection.getInputStream());
BufferedReader bufferedReader = new BufferedReader(
inputStreamReader,
8192);
String line = null;
while((line = bufferedReader.readLine()) != null){
result += line;
}
bufferedReader.close();
}
return result;
}
private String ParseResult(String json) throws JSONException{
String parsedResult = "";
JSONObject jsonObject = new JSONObject(json);
JSONObject jsonObject_responseData = jsonObject.getJSONObject("responseData");
JSONArray jsonArray_results = jsonObject_responseData.getJSONArray("results");
//parsedResult += "Google Search APIs (JSON) for : <b>" + search_item + "</b><br/>";
//parsedResult += "Number of results returned = <b>" + jsonArray_results.length() + "</b><br/><br/>";
for(int i = 0; i < jsonArray_results.length(); i++){
JSONObject jsonObject_i = jsonArray_results.getJSONObject(i);
String iTitle = jsonObject_i.getString("title");
String iContent = jsonObject_i.getString("content");
String iUrl = jsonObject_i.getString("url");
parsedResult += "<a href='" + iUrl + "'>" + iTitle + "</a><br/>";
parsedResult += iContent + "<br/><br/>";
}
return parsedResult;
}
xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id = "@+id/activitymain"
>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id = "@+id/txtSearch"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/txtSearch"
android:text="Search"
android:id="@+id/searchbtn" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/txtSearch"
android:layout_toRightOf="@+id/searchbtn"
android:layout_toEndOf="@+id/searchbtn"
android:id="@+id/save"
android:text=" Save " />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Saved Searches"
android:id="@+id/savedSearches"
android:layout_alignTop="@+id/save"
android:layout_toRightOf="@+id/save"
android:layout_toEndOf="@+id/save" />
</RelativeLayout>
<ListView
android:layout_width="match_parent"
android:layout_height="174dp"
android:id = "@android:id/list"
android:background="#FF498CDE">
</ListView>
<WebView
android:layout_width="match_parent"
android:layout_height="202dp"
android:id="@+id/webView"
android:layout_gravity="center_horizontal" />
Grundsätzlich möchte ich beide api laufen, wenn ich auf die Schaltfläche Suche klicken. Bitte jemand weist mich in die richtige Richtung, ich bin völlig neu dazu. Danke