Предполагая, что вы хотите щелкнуть отдельные слова в текстовом виде ?. Я не понимаю, как конвертирует все буквы в слова в вашем комментарии.
Ниже можно использовать щелчок по отдельным работам, и он отображается в тосте.
public class MainActivity extends Activity {
TextView _tv;
String[] each;
SpannableString ss1;
Button b;
EditText et;
String s;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
b= (Button) findViewById(R.id.button1);
et = (EditText) findViewById(R.id.ed);
_tv = (TextView) findViewById( R.id.tv );
b.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
s=et.getText().toString();
_tv.setText("");
for(int i=0;i<s.length();i++)
{
each = s.split("\\s+");
}
for(int i=0;i<each.length;i++)
{
System.out.println("................"+each[i]);
ss1= new SpannableString(each[i]);
//StyleSpan boldSpan = new StyleSpan( Typeface.BOLD );
//spannable.setSpan( boldSpan, 41, 52, Spannable.SPAN_INCLUSIVE_INCLUSIVE );
ss1.setSpan(new MyClickableSpan(each[i]), 0, ss1.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
_tv.append(ss1);
_tv.append(" ");
}
_tv.setMovementMethod(LinkMovementMethod.getInstance());
}
});
}
class MyClickableSpan extends ClickableSpan{
String clicked;
public MyClickableSpan(String string) {
// TODO Auto-generated constructor stub
clicked =string;
}
//clickable span
public void onClick(View textView) {
//do something
Toast.makeText(MainActivity.this,clicked ,
Toast.LENGTH_SHORT).show();
}
@Override
public void updateDrawState(TextPaint ds) {
ds.setColor(Color.BLACK);//set text color
ds.setUnderlineText(false); // set to false to remove underline
}
}
}
Ваш оператор для установки заголовков ответа немного искажен:
$this->getResponse()
->setHeader('Content-Disposition', 'inline; filename=result.pdf')
->setHeader('Content-type', 'application/x-pdf');
Вышеупомянутое должно работать - обратите внимание на разницу в Content-Disposition
-header.
Кстати ... Если вы хотите принудительно установить окно загрузки (вместо загрузки документа в браузер), вы должны использовать Content-Disposition
] вложение
.
$this->getResponse()
->setHeader('Content-Disposition', 'attachment; filename=result.pdf')
->setHeader('Content-type', 'application/x-pdf');
В зависимости от браузера, возможно, вам также потребуется установить Content-Length
или изменить Content-type
на комбинацию (несколько заголовков) одного или нескольких из приложения / принудительной загрузки
, приложения / потока октетов
и / или приложения / загрузки
. И, как я писал в комментарии, иногда кеширование заголовков может мешать вашей загрузке.
В конце таблицы я могу порекомендовать этот помощник действий в качестве простого многоразового компонента для отправки файлов или данных из памяти в браузер.
Имеет параметры для кэширование, удаление и может использовать Apache Sendfile
Решено
$this->getResponse()
->setHeader('Content-Disposition:inline', ';filename=result.pdf')
->setHeader('Content-Type', 'application/x-pdf');
Я предполагаю, что вы делаете что-то вроде:
$this->getResponse()
->setHeader('Content-Disposition:inline', ' filename=result.pdf')
->setHeader('Content-type', 'application/x-pdf');
fpassthru($filename);
exit();
или что-то в этом роде.
Ответ здесь никогда не будет отображаться (что отображает заголовки). Ответ обычно отображается во время печати пост-действия.
Вам нужно будет напрямую установить заголовки (как вы отметили в коде, отличном от oo), или напрямую использовать $ this-> getResponse () -> sendHeaders ()
.