2016-05-02 11 views
0

データベースから取得したデータを含む文字列を渡そうとしていて、スクロールしているアクティビティの本体にその文字をエコーし​​たいとします。私はプログラムでエコーを鳴らすことができます。私はちょうどそれをさまざまな活動にどのように引き込むのか分かりません。 This is the home screen of my App I am trying to build.これは私のMainActivity.xmlファイルであり、ここではそのためのMainActivity.javaコードです:http://www.komediagroup.com/clients.txtAndroidスタジオで文字列を渡す

package com.example.it5.foothillers; 

import android.content.Intent; 
import android.os.AsyncTask; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.net.HttpURLConnection; 
import java.net.MalformedURLException; 
import java.net.URL; 

public class MainActivity extends AppCompatActivity implements  View.OnClickListener 
{ 

Button button; 
Button button2; 
Button button3; 

public TextView textViewData2; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
     button = (Button)findViewById(R.id.button); 
     button.setOnClickListener(this); 



     textViewData2 = (TextView)findViewById(R.id.textViewData2); 

     button2 = (Button)findViewById(R.id.button2); 
     button2.setOnClickListener(this); 

     button3 = (Button)findViewById(R.id.button3); 
     button3.setOnClickListener(this); 

} 




private void buttonClick() { 

    startActivity(new Intent("it5.foothillers.news")); 

} 
private void button2Click() { 

    startActivity(new Intent("it5.foothillers.sports")); 
} 
private void button3Click() { 
    startActivity(new Intent("it5.foothillers.events")); 
} 

@Override 
public void onClick(View v) { 

    switch (v.getId()){ 
     case R.id.button: 
      new newsTask().execute("https://wordpress.org/plugins/about/readme.txt" + 
        ""); 
      buttonClick(); 
      break; 
     case R.id.button2: 
      button2Click(); 
      break; 
     case R.id.button3: 
      button3Click(); 
      break; 

    } 

} 




public static void callBackDataFromAsyncTask(String result) { 
} 


private class newsTask extends AsyncTask<String, String, String>{ 


    @Override 
    protected String doInBackground(String... params) { 

     HttpURLConnection connection = null; 
     BufferedReader reader = null; 
     try { 
      URL url = new URL(params[0]); 

      connection = (HttpURLConnection) url.openConnection(); 
      connection.connect(); 

      InputStream stream = connection.getInputStream(); 

      reader = new BufferedReader(new InputStreamReader(stream)); 

      StringBuffer buffer = new StringBuffer(); 

      String line =""; 

      while ((line = reader.readLine())!= null) { 
       buffer.append(line); 
      } 
      String s = buffer.toString(); 
      System.out.println(s); 
      return s; 

      // return buffer.toString(); 

     } 

     catch (MalformedURLException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } finally { 
      if(connection != null) 
       connection.disconnect(); 
      connection.disconnect(); 
      try { 
       if(reader != null){ 
        reader.close(); 
       } 
       reader.close(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 

     return null; 
    } 





} 
// end of private class 

}

それは、このリンクからすべてのテキストである文字列 's' をエコー表示

私のニュース(content_news.xml)の内容はこれです:

<?xml version="1.0" encoding="utf-8"?> 
それはのstrings.xml

に大きなテキスト文字列を呼び出す

package com.example.it5.foothillers; 

import android.os.Bundle; 
import android.support.design.widget.FloatingActionButton; 
import android.support.design.widget.Snackbar; 
import android.support.v7.app.ActionBar; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.view.View; 

public class news extends AppCompatActivity { 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_news); 
    ActionBar toolbar = getSupportActionBar(); 

} 

}

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_margin="@dimen/text_margin" 
    android:text="@string/large_text" /> 

と私のnews.javaファイル私はそれが開き、私の目標は 'ニュース'をクリックしますそれはデータベースからテキストを表示するためのコードのこのブロックである私ののstrings.xmlから引き出さ代わりに「テストテストテスト」である:

<resources> 
<string name="app_name">Foothillers</string> 

<string name="title_activity_scrolling">ScrollingActivity</string> 

<string name="large_text"> 

Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test 


</string> 


<string name="action_settings">Settings</string> 

<string name="title_activity_news">News</string> 

<string name="title_activity_events">Events</string> 

私は「テストのテストを交換したかったですテスト」をクリックしてください。

答えて

0

Android開発者のthis page on Intentsを参照してください。

あなたがしたいことは、呼び出されたアクティビティに余分なStringを渡すことです。 startActivityを呼び出す前にIntent#putExtra(String name, String value)メソッドを呼び出すことでこれを行います。

次に、呼び出されたアクティビティで、getIntent()で呼び出すために使用されたインテントを取得し、Intent#getStringExta(String name)で余分なStringを取得します。

+0

これを使用する方法の例を確認できますか? –

+0

@NateChong http://stackoverflow.com/a/5265952/1529586 – KevinOrr

関連する問題