我在android中使用Edittext通过使用aspose-cell for android API来填充xls.file的单元格。但是当我在edittext中放入一些文本时,xls中显示的值。文件总是一样的:2131492965 !!而不是edittext的文本。
你能帮助我吗?
这是我的代码:
MainActivity.java
package com.example.lionel.cells;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.aspose.cells.Cell;
import com.aspose.cells.Cells;
import com.aspose.cells.*;
import com.aspose.cells.Workbook;
import com.aspose.cells.Worksheet;
import com.google.android.gms.appindexing.Action;
import com.google.android.gms.appindexing.AppIndex;
import com.google.android.gms.appindexing.Thing;
import java.io.File;
import static com.aspose.cells.b.b.zp.v;
import static com.example.lionel.cells.R.id.button1;
public class MainActivity extends AppCompatActivity {
/**
* ATTENTION: This was auto-generated to implement the App Indexing API.
* See https://g.co/AppIndexing/AndroidStudio for more information.
*/
public EditText mEditText;
public String text;
// public String text = textview.getText().toString();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LibsLoadHelper.loadLibs(getApplicationContext());
mEditText = (EditText) findViewById(R.id.Edittext1);
// mEditText.setOnKeyListener(new EditText.OnKeyListener()
// {
// @Override
// public boolean onKey(View view, int keyCode, KeyEvent keyEvent) {
//
// if(KeyEvent.KEYCODE_ENTER == keyCode)
// {
// if(KeyEvent.ACTION_UP == keyEvent.getAction())
// {
// EditText editText = (EditText)view;
// mCellValue = editText.getText().toString();
// Toast.makeText(MainActivity.this, mCellValue, Toast.LENGTH_SHORT).show();
// }
// return true;
// }
// return false;
// }
// });
text = mEditText.getText().toString();
Button btn = (Button) findViewById(R.id.button1);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new TestTask().execute();
}
});
}
}
TestTask.java:
package com.example.lionel.cells;
import android.os.AsyncTask;
import android.os.Environment;
import android.widget.TextView;
import android.widget.Toast;
import com.aspose.cells.Cell;
import com.aspose.cells.Cells;
import com.aspose.cells.Workbook;
import com.aspose.cells.Worksheet;
import java.io.File;
import java.io.IOException;
import static com.example.lionel.cells.R.id.text;
/**
* Created by Lionel on 25/09/2016.
*/
public class TestTask extends AsyncTask<Void, String, Boolean> {
// File sdDir = Environment.getExternalStorageDirectory();
File sdDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
String sdPath = sdDir.getAbsolutePath();
@Override
protected Boolean doInBackground(Void... params) {
Boolean result = false;
Workbook book = new Workbook();
Worksheet sheet = book.getWorksheets().get(0);
Cells cells = sheet.getCells();
Cell cell = cells.get("A1");
Cell cell1 = cells.get("A2");
Cell cell2 = cells.get("A3");
cell.putValue(text);
cell1.setValue(true);
cell2.setValue(123);
try {
book.save(sdPath + "/output.xlsx");
//
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
}
答案 0 :(得分:0)
@Krukiou, 您在Aspose.Cells支持论坛上已经回复了类似的询问。有关详细信息,请查看以下代码段和this主题。
关于以下代码段,它使用mCellValue变量在Enter键上加载EditText字段的内容。您可以使用相同的变量使用UI按钮mButton将EditText字段的内容插入电子表格单元格。此外,默认情况下,EditText可以跨越多行,因此真实设备(或软键盘)上的Enter键将作为回车符,因此代码将EditText.SingleLine设置为true,以便更改其行为。软键回车键。
private TextView mResultTextView;
private TextView mProgressTextView;
private Button mButton;
private EditText mEditText;
private String mCellValue;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LibsLoadHelper.loadLibs(getApplicationContext());
mResultTextView = (TextView)findViewById(R.id.result_textview);
mProgressTextView = (TextView)findViewById(R.id.progress_textview);
mButton = (Button)findViewById(R.id.button);
mEditText = (EditText)findViewById(R.id.edit_text);
mEditText.setSingleLine(true);
mEditText.setOnKeyListener(new EditText.OnKeyListener()
{
@Override
public boolean onKey(View view, int keyCode, KeyEvent keyEvent) {
if(KeyEvent.KEYCODE_ENTER == keyCode)
{
if(KeyEvent.ACTION_UP == keyEvent.getAction())
{
EditText editText = (EditText)view;
mCellValue = editText.getText().toString();
Toast.makeText(MainActivity.this, mCellValue, Toast.LENGTH_SHORT).show();
}
return true;
}
return false;
}
});
mButton.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v) {
new TestTask().execute();
}
});
注意:我使用Aspose作为开发者布道者。