Вы можете использовать clickable span
в строке spannable
следующим образом: -
SpannableString ss = new SpannableString(" Hello, @John how's going on");
ClickableSpan clickableSpan = new ClickableSpan() {
@Override
public void onClick(View textView) {
//perform click operation
}
@Override
public void updateDrawState(TextPaint ds) {
}
};
ss.setSpan(clickableSpan, startIndex, endIndex, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
yourTv.setText(ss);
yourTv.setMovementMethod(LinkMovementMethod.getInstance());
yourTv.setHighlightColor(Color.TRANSPARENT);
startIndex - это индекс J слова Джон в полной строке
endIndex - это индекс n слова Джона в полной строке.
blockquote>& amp; метод onclick будет запущен при нажатии на john ..
Редактировать
Извлечь имя пользователя John вы можете разбейте строку и получите ее следующим образом: -
String username = yourString.split("@")[1].split(" ")[0]; // this will extract john
Я соглашаюсь с Harpreet, что можно хотеть пересмотреть, как Вы, которых Вы имеете, устанавливаете Вас переходящий структура. Однако Вы, если Вы действительно хотите выполнить этот тип слияния, Вы можете через что-то позвонившее необоснованное слияние. Это работает от tfs командной строки,
Tf merge /baseless <<source path>> <<target path>> /recursive
, Дополнительная информация о необоснованных слияниях может быть найдена здесь
, Также я нашел, что этот документ был неоценим при построении нашего tfs переходящая структура Microsoft Team Foundation Server Branching Guidance
tf.exe merge /recursive /baseless $/TeamProject/SourceBranch $/TeamProject/TargetBranch
Можно хотеть пересмотреть переходящую стратегию. Как Вы получаете производственные ответвления? Вы объединяете весь код от ответвлений разработки, регрессионного тестирования и затем создаете производственное ответвление для мер? Или Вы разрабатываете на соединительной линии и затем создаете производственные ответвления, чтобы стабилизировать и выпустить от? Второй путь создает проблемы типа, который Вы описываете. При использовании первого подхода - соединительная линия, как предполагается, только для вещей, которые были основаны на протестированных ответвлениях и затем объединились, Вы будете сталкиваться с этим намного менее часто. При том подходе, если у Вас все еще есть эта проблема, это может быть, потому что Ваше усилие по разработке является очень большим, и Вам, возможно, понадобится относительно сложная переходящая стратегия со слоями ветвления и продвижения.
AFAIK можно сделать это пока ответвления, были созданы прочь той же исходной папки.
, Если Вы делаете это затем, необходимо смочь объединиться между feature1 и feature2 также.
, Хотя мой переходящий/объединяющий опыт с TFS оставляет меня желающий больше. Мне жаль, что у нас просто не было SVN.
TFS позволит Вам объединяться с ответвлением, которое не является родителем/ребенком - их называют необоснованными слияниями. См. эти ссылки:
Мы обычно делаем главные или дестабилизирующие изменения на ответвлении разработки. Если близко к главной версии одного из наших продуктов почти все изменения будут сделаны на ответвлении.
Да, можно сделать необоснованное слияние, но только из командной строки (tf.exe).