2

特定のキーセットの値を別のアクティビティフォームに運ぶ方法を知る必要があります。私はキーとそのキーに含まれるすべての値を含むリストを持っています。ユーザーがリスト内のアイテムをクリックすると、クリックされた特定のアイテムの値が別のアクティビティに読み込まれるようにします。Java:キー設定値を取得

たとえば、リスト内のアイテムとしてRunningというキーセットがあり、そのセットの値がランのStartTimeとEndTimeの場合、そのセットに属するこれらの値だけを表示するにはどうすればいいですか次の活動。これは説明するのが難しいですが、私のコードで、私が求めていることを明確にすることを願っています。

public class ActivityLog extends Activity { 
ListView listView ; 



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

    // Get ListView object from xml 
    listView = (ListView) findViewById(R.id.list); 
    listView.setFriction(ViewConfiguration.getScrollFriction() * 0); 
    // ListView Item Click Listener 
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 


     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

      int itemPosition  = position; 
      String itemValue = (String) listView.getItemAtPosition(position); 


      // ListView Clicked item index 


      // ListView Clicked item value 

      // Show Alert 
      Toast.makeText(getApplicationContext(), "Position :"+itemPosition+" ListItem : " +itemValue , Toast.LENGTH_LONG).show(); 

     } 

    }); 
} 

@Override 
protected void onStart() 
{ 
    SharedPreferences userInfo = getSharedPreferences("userData", Context.MODE_PRIVATE); 
    SharedPreferences.Editor editor = userInfo.edit(); 
    String myString = userInfo.getAll().keySet().toString(); 
    String[] values = new String[] { myString }; 

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.activity_list_item, android.R.id.text1); 


    Map<String, ?> allEntries = userInfo.getAll(); 
    for (Map.Entry<String, ?> entry : allEntries.entrySet()) { 

     Log.d("map values", entry.getKey() + ": " + entry.getValue().toString()); 
     adapter.add(entry.getKey()+ ": " + entry.getValue().toString()); 
     listView.setAdapter(adapter); 

    } 
    super.onStart(); 
} 


public void showLog (View view){ 

    Intent intent = new Intent(this, ActivityNewLog.class); 
    startActivity(intent); 

} 


public void deleteLog (View view){ 

    SharedPreferences settings = getSharedPreferences("userData", Context.MODE_PRIVATE); 
    settings.edit().clear().commit(); 
    getSharedPreferences("userData", 0).edit().clear().commit(); 

} 

public void dataShow (View view){ 

    Intent intent = new Intent(this, Log_Data.class); 
    startActivity(intent); 

} 

}

これは私が値をロードする活動です:

public class Log_Data extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_log__data); 
    TextView data = (TextView)findViewById(R.id.textView5); 

    SharedPreferences userInfo = getSharedPreferences("userData", Context.MODE_PRIVATE); 
    SharedPreferences.Editor editor = userInfo.edit(); 
    String myString = userInfo.getAll().keySet().toString(); 
    String[] values = new String[] { myString }; 

    //ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.activity_list_item, android.R.id.text1); 
    Map<String, ?> allEntries = userInfo.getAll(); 
    for (Map.Entry<String, ?> entry : allEntries.entrySet()) { 

     data.setText(entry.getKey()+ ": " + entry.getValue().toString()); 

    } 


    } 
} 

私は、私は彼らがTextViewの中に格納したい、また、言及する必要があります。

答えて

1

値をStringに保存し、onItemClickリスナーのBundleを使用して他のアクティビティに値を渡します。例えば ​​- 第二活性における

最初のアクティビティ

Intent i = new Intent(this, secondActivity.class); 
    //Create the bundle 
Bundle bundle = new Bundle(); 
//Add your data from getFactualResults method to bundle 
bundle.putString("TAG", yourvalue); 
//Add the bundle to the intent 
i.putExtras(bundle); 
startActivity(i); 

Bundle bundle = getIntent().getExtras(); 

    //Extract the data… 
    String something = bundle.getString("TAG");   

    //Create the text view 
    TextView textView = new TextView(this); 
    textView.setText(TAG);