将List中的putExtra放入SMS正文中

时间:2012-02-03 06:13:05

标签: android list android-intent

我正在尝试将List mCartList的内容放入;进入下面的sms_body,例如:Cheeseburger,Hamburger,Fries(所以它可以通过短信发送)。我可以传递一个字符串,所以我知道它有效。我根本不是一个程序员,这是我做审判的一个月。错误。

在活动下方将mCartList的内容调用到List中,以便可以删除它们。告诉我你需要什么,以帮助我解决这个问题。提前谢谢。

private ProductAdapter mProductAdapter;
  // This List into the order button below
   private List<Product> mCartList;

   @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.shoppingcart);    
    mCartList = ShoppingCartHelper.getCart();
    // Make sure to clear the selections
    for(int i=0; i<mCartList.size(); i++) {
    mCartList.get(i).selected = false;
  }

                     // Create the list
   final ListView listViewCatalog = (ListView) findViewById(R.id.ListViewCatalog);
   mProductAdapter = new ProductAdapter(mCartList, getLayoutInflater(), true);
   listViewCatalog.setAdapter(mProductAdapter);
   listViewCatalog.setOnItemClickListener(new OnItemClickListener() {

   @Override
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
     Product selectedProduct = mCartList.get(position);
     if(selectedProduct.selected == true)
     selectedProduct.selected = false;
 else
     selectedProduct.selected = true;
     mProductAdapter.notifyDataSetInvalidated();
   }
 });

      Button orderButton = (Button) findViewById(R.id.orderButton);
      orderButton.setOnClickListener(new OnClickListener() {

          public void onClick(View v) {

      Uri uri = Uri.parse("smsto:1234567890");
      Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
       // The above List<Product> mCartList ia displayed in the window of the app 
      intent.putExtra("sms_body", "mCartList"); // I want the results of List<Product> mCartList to go here - I can not just insert the variable I just get errors and can't compile 
          startActivity(intent); 
   }    
 });        

      Button removeButton = (Button) findViewById(R.id.ButtonRemoveFromCart);
      removeButton.setOnClickListener(new OnClickListener() {

         @Override
            public void onClick(View v) {
            // Loop through and remove all the products that are selected
            // Loop backwards so that the remove works correctly

             for(int i=mCartList.size()-1; i>=0; i--) {
               if(mCartList.get(i).selected) {
                 mCartList.remove(i);
          }
      }
             mProductAdapter.notifyDataSetChanged();
          }
       });      
    }

这是如何工作的。这是一个4选项卡列表,每个选项卡中有不同的项目,其中3个或产品。客户点击该项目,他们会看到描述,点击添加到购物车,然后再返回菜单。第四个选项卡是刚刚选择的用于填充短信主体的顺序。我已经能够传递一个带有“Hello World”文本的变量。我正在计算List mCartList的结果可以填充sms正文。我假设List不能只是插入到forn的主体而不是转换器。如果您需要更多信息,请告诉我。我不是程序员,我看过类似但没有任何东西,如果没有编写我从教程中获得的其他文件就无法工作。提前谢谢。

1 个答案:

答案 0 :(得分:1)

如果所有产品都添加到您的mCartList中,那么只需将产品的String输出连接在一起,如下所示:

orderButton.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {

            Uri uri = Uri.parse("smsto:1234567890");
            Intent intent = new Intent(Intent.ACTION_SENDTO, uri);

            StringBuilder builder = new StringBuilder();

            for(Product p : mCartList){
                builder.append(p.toString());
                builder.append('\n');
            }

            intent.putExtra("sms_body", builder.toString()); 
            startActivity(intent);
        }
    });

确保您的产品具有如下定义的toString()方法(示例产品猜测):

public class Product{
    String productName;

    public String toString(){
        return productName;
    }
}