2012-01-18 17 views
1

私はいくつかの他の投稿を見て、私のアンドロイドアプリから私たちのウェブサイト上のPHPページへのPOSTデータへの方法をまとめようとしています。基本的にはドメインチェック機能で、ユーザーがアプリケーション内でドメイン名を入力できるようにして、「今すぐ確認」をクリックするとウェブページに移動して結果を表示します。私は現時点でアプリ内に結果を表示することについて心配していない。AndroidアプリからPHPページへのデータの投稿

これは私がこれまで持っているコードです:私は(この活動を実行する)をチェックし、ボタンをクリックしたときに、私はnullPointerErrorを得る現時点で

public class Domain_check extends Activity { 

public void onCreate(Bundle savedInstanceState) { 
    postData(); 
} 

public void postData() { 
    EditText domainText = (EditText) findViewById(R.id.hosting_link); 
    if (domainText.length()>0) 
    { 
     // Create a new HttpClient and Post Header 
     HttpClient httpclient = new DefaultHttpClient(); 
     HttpPost httppost = new HttpPost("https://www.oursite.com/domainchecker.php"); 



     try { 
      // Add your data 
      List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1); 
      nameValuePairs.add(new BasicNameValuePair("id",domainText.getText().toString())); 
      httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

      // Execute HTTP Post Request 
      httpclient.execute(httppost); 

     } catch (ClientProtocolException e) { 
      // TODO Auto-generated catch block 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
     } 
    } 
    else 
    { 
     // display message if text fields are empty 
     Toast.makeText(getBaseContext(),"Please enter a domain name",Toast.LENGTH_SHORT).show(); 
    } 

} 

私はまだかなりJavaに新しいので、これを行うにはかなり簡単な方法かもしれません!

おかげ

編集:

エラー:

01-18 11:05:39.720: E/AndroidRuntime(353): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.oursite/com.oursite.Domain_check}: java.lang.NullPointerException 

改訂コードは、コードは、テキストが入力されたビューではなく、別々の活動を描く活動になりました。

public class Hosting extends Activity implements OnClickListener { 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.hosting); 

    View DomainButton = findViewById(R.id.domain_button); 
    DomainButton.setOnClickListener((OnClickListener) this);  
} 

public void onClick (View thisView) { 
    postData(); 
} 

public void postData() { 
    EditText domainText = (EditText) findViewById(R.id.hosting_link); 
    if (domainText.length()>0) 
    { 
     // Create a new HttpClient and Post Header 
     HttpClient httpclient = new DefaultHttpClient(); 
     HttpPost httppost = new HttpPost("https://www.oursite.com/domainchecker.php"); 



     try { 
      // Add your data 
      List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1); 
      nameValuePairs.add(new BasicNameValuePair("id",domainText.getText().toString())); 
      httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

      // Execute HTTP Post Request 
      httpclient.execute(httppost); 

     } catch (ClientProtocolException e) { 
      // TODO Auto-generated catch block 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
     } 
    } 
    else 
    { 
     // display message if text fields are empty 
     Toast.makeText(getBaseContext(),"Please enter a domain name",Toast.LENGTH_SHORT).show(); 
    } 
} 

+2

'length()'とは対照的に、 'domainText.getText()。length()> 0'を使用することもできます。すでにテキストボックスが値を返すことを確認しましたか? – Ricky

+0

エラートレースを入れてください。 – blessenm

+0

実際にはありません。基本的に、アクティビティを呼び出すボタンのonClickListenerとは別に、私が投稿したコードがすべてあります。今あなたのポイントを試してみてください。 –

答えて

0

アクティビティにsetContentView()メソッドが表示されません。したがって、domainTextの変数は、長さを取得しようとするとヌルです

+0

興味深い点。この活動を開始し、このコードをホスティング・ページを描く活動の中に入れることは価値がありますか? –

+0

また、改訂コードを投稿したい場合は、どこに追加しますか?コメントや回答で?または元の投稿に追加するだけですか? –

+0

私はそれが良いアイデアだろうと思います。いくつかのUIをレンダリングする場合は、アクティビティを使用することをお勧めします。ここでhttpリクエストをしているので、編集テキストとボタンをレンダリングするのと同じアクティビティで行う必要があります – pankajagarwal

関連する問題