2012-11-28 55 views
1

我在尝试运行我的代码时遇到以下错误。在'android'包中找不到属性'onClick'的资源标识符

我把它搜索出来了。许多人已经谈到了不适用于API < = 3的onclick方法。我重新检查了我的API级别。它是17.

如何获得有关运行我的代码的信息。

如果需要我可以发布我的MainActivity.java代码弄清楚。

这里是代码

package com.example.myfirstapp; 




import java.io.BufferedReader; 
import java.io.InputStream; 
import java.io.InputStreamReader; 

import org.apache.http.HttpResponse; 
import org.apache.http.client.methods.HttpGet; 
import org.apache.http.impl.client.DefaultHttpClient; 

import android.app.Activity; 
import android.os.AsyncTask; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Spinner; 
import android.widget.TextView; 

public class MainActivity extends Activity { 

private Button btn; 
private EditText edit; 
private Spinner spinner; 
private TextView textView; 

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

    btn = (Button) findViewById(R.id.button); 
    edit = (EditText) findViewById(R.id.edit_message); 
    spinner = (Spinner) findViewById(R.id.spinner); 
    textView = (TextView) findViewById(R.id.textView1); 

    btn.setOnClickListener(
      new View.OnClickListener() 
      { 
       public void onClick(View view) 
       { 
        //Log.v("EditText", edit.getText().toString()); 
        //Log.v("Spinner", spinner.getSelectedItem().toString()); 
        String url="http://js-server.xxx.edu:23405/examples/servlet/HelloWorldExample?title="+edit.getText().toString()+"&type="+spinner.getSelectedItem().toString(); 
        Log.v("url",url); 
       } 
      }); 



ArrayAdapter<CharSequence> adapter =  ArrayAdapter.createFromResource(this,R.array.title_type,android.R.layout.simple_spinner_item); 
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
spinner.setAdapter(adapter); 

    //String url="http://js-server.xxx.edu:23405/examples/servlet/HelloWorldExample?title="+edit.getText().toString()+"&type="+spinner.getSelectedItem().toString(); 
// Log.v("url",url); 

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { 
     //Object item = parent.getItemAtPosition(pos); 

    } 
    public void onNothingSelected(AdapterView<?> parent) { 
    } 
}); 


} 

private class DownloadWebPageTask extends AsyncTask<String, Void, String> { 
    @Override 
    protected String doInBackground(String... urls) { 
     String response = ""; 
     for (String url : urls) { 
     DefaultHttpClient client = new DefaultHttpClient(); 
     HttpGet httpGet = new HttpGet(url); 
     try { 
      HttpResponse execute = client.execute(httpGet); 
      InputStream content = execute.getEntity().getContent(); 

      BufferedReader buffer = new BufferedReader(new InputStreamReader(content)); 
      String s = ""; 
      while ((s = buffer.readLine()) != null) { 
      response += s; 
      } 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     } 
     return response; 
    } 

    @Override 
    protected void onPostExecute(String result) { 
     textView.setText(result); 
    } 
    } 

    public void readWebpage(View view) { 
    DownloadWebPageTask task = new DownloadWebPageTask(); 
    task.execute(new String[] { "http://js-server.xxx.edu:23405/examples/servlet/HelloWorldExample?title="+edit.getText().toString()+"&type="+spinner.getSelectedItem().toString() }); 

    } 
} 

所有我试图做的是获取由服务器返回的JSON数据。然后我需要解析JSON数据以形成表格格式。我还没有到这个部分,仍然坚持从我的服务器检索JSON数据。

我的XML文件是:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" > 

<EditText 
    android:id="@+id/edit_message" 
    android:layout_width="298dp" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="37dp" 
    android:ems="10" 
    android:hint="@string/edit_message" /> 

<Spinner 
    android:id="@+id/spinner" 
    android:layout_width="304dp" 
    android:layout_height="45dp" /> 

<Button 
    android:id="@+id/button" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="106dp" 
    android:layout_height="wrap_content" 
    android:onclick="readWebpage" 
    android:text="@string/button_send" /> 

<TextView 
    android:id="@+id/textView1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:text="Example Text" /> 

</LinearLayout> 
+0

请张贴您的代码。另外,在XML中使用onClick通常是一个糟糕的主意。注册一个OnClickListener,而不是。, – Codeman

+0

@ Pheonixblade9:**“...在XML中使用onClick通常是一个糟糕的主意。”** - 您的逻辑背后的逻辑是什么? – Squonk

+0

@Squonk它不易维护。它类似于在JavaScript中使用onClick,它没有明确不正确,这只是不好的做法。 – Codeman

回答

12

Android的XML解析器是大小写敏感的。这是不正确的:

android:onclick="readWebpage" 

这是正确的:

android:onClick="readWebpage" 
+0

是的。有效 。 – PSN

0

不正确: -

安卓上ç舔= “ReadFun”; (的onclick < = “C” 不首都)

正确: -

机器人:上Ç舔= “ReadFun”; (onclick < =“C”是首都)

相关问题