2015-11-07 89 views
0

我想发送字符串到我的列表视图。可悲的是,数据没有被发送过来并且没有显示任何错误。主要活动有列表视图,用户点击一个按钮(将它们带到第二个活动),他们可以在其中输入产品名称,并自动将它们带回主要活动。字符串数据没有被发送到主要的活动

这确实有用,但我必须弄清楚一些事情。我错过了什么吗?

MainActivity.java

public class MainActivity extends Activity { 
     private ListView listView; 
     private String[] details; 
     public static ArrayList<String> names = new ArrayList<>(); 
     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 
      listView = (ListView) findViewById(R.id.listView); 
    // replace \ with left angle bracket in the line below 
      ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, names); 
      listView.setAdapter(arrayAdapter); 
      listView.setOnItemClickListener(

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

         } 
        } 
       ); 
      } 

    } 

次活动

public class Main2Activity extends Activity { 
    private EditText textName; 
    private EditText textModel; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main2); 
     textName=(EditText)findViewById(R.id.inputName); 
     textModel=(EditText)findViewById(R.id.inpuModelNumber); 



    } 
    public void addNames(View v){ 
     MainActivity.names.add(textName.getText().toString()); 

     finish(); 
    } 


} 
+0

,你打电话addNames? –

回答

1

我了解你想要传递的字符串数组列表到另一个活动

在您的活动创建的ArrayList

public class Main2Activity extends Activity { 
    private EditText textName; 
    private EditText textModel; 
    ArrayList<String> names = new ArrayList<>(); 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main2); 
     textName=(EditText)findViewById(R.id.inputName); 
     textModel=(EditText)findViewById(R.id.inpuModelNumber); 

    } 
    public void addNames(View v){ 
     names.add(textName.getText().toString()); 

     Intent intent = new Intent(Main2Activity .this, MainActivity .class); 
     intent.putStringArrayListExtra("keyNames", names); 
     startActivity(intent); 
     finish(); 

    } 
} 

然后解析字符串

传递数组中的OnCreate

Intent i = getIntent(); 
    ArrayList<String> list = i.getStringArrayListExtra("keyNames"); 

我希望这可以帮助您

1
listView.setAdapter(arrayAdapter); 
      listView.setOnItemClickListener(

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

Intent newPage = new Intent(getActivity().getApplicationContext(), 
     Main2Activity.class); 
newPage.putExtra("TITLE", title); 
newPage.putExtra("DATE", date); 
newPage.putExtra("CONTENT", content); 
startActivity(newPage); 


         } 
        } 
       ); 
      } 

然后在你的Main2Activity的onCreate()方法:

Bundle extras = getIntent().getExtras(); 
if(extras !=null) { 
    String title = extras.getString("TITLE"); 
    String date = extras.getString("DATE"); 
    String content = extras.getString("CONTENT"); 
} 
相关问题